Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d8f3ac1afd | ||
|
|
7790c37b67 | ||
|
|
203f5fde58 |
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"name": "ponytail",
|
||||||
|
"version": "4.8.3",
|
||||||
|
"description": "Lazy senior dev mode. Forces the simplest, shortest solution that actually works: YAGNI, stdlib first, no unrequested abstractions.",
|
||||||
|
"author": {
|
||||||
|
"name": "Dietrich Gebert",
|
||||||
|
"url": "https://github.com/DietrichGebert"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/DietrichGebert/ponytail",
|
||||||
|
"repository": "https://github.com/DietrichGebert/ponytail",
|
||||||
|
"license": "MIT",
|
||||||
|
"keywords": ["yagni", "minimalism", "code-review", "productivity"]
|
||||||
|
}
|
||||||
+10
-2
@@ -15,7 +15,7 @@
|
|||||||
<img src="https://img.shields.io/github/stars/DietrichGebert/ponytail?style=flat-square&color=111111&label=stars" alt="Stars">
|
<img src="https://img.shields.io/github/stars/DietrichGebert/ponytail?style=flat-square&color=111111&label=stars" alt="Stars">
|
||||||
<img src="https://img.shields.io/github/v/release/DietrichGebert/ponytail?style=flat-square&color=111111&label=release" alt="Release">
|
<img src="https://img.shields.io/github/v/release/DietrichGebert/ponytail?style=flat-square&color=111111&label=release" alt="Release">
|
||||||
<img src="https://img.shields.io/npm/v/@dietrichgebert/ponytail?style=flat-square&color=111111&label=npm" alt="npm">
|
<img src="https://img.shields.io/npm/v/@dietrichgebert/ponytail?style=flat-square&color=111111&label=npm" alt="npm">
|
||||||
<img src="https://img.shields.io/badge/funciona%20con-14%20agentes-111111?style=flat-square" alt="Works with 14 agents">
|
<img src="https://img.shields.io/badge/funciona%20con-15%20agentes-111111?style=flat-square" alt="Works with 15 agents">
|
||||||
<img src="https://img.shields.io/badge/licencia-MIT-111111?style=flat-square" alt="MIT license">
|
<img src="https://img.shields.io/badge/licencia-MIT-111111?style=flat-square" alt="MIT license">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -198,6 +198,14 @@ Reutiliza el `gemini-extension.json` de este repo. Una diferencia: Antigravity c
|
|||||||
|
|
||||||
Lee `AGENTS.md` desde la raíz del proyecto, sin configuración. Copia [`AGENTS.md`](AGENTS.md) a tu proyecto, o ejecuta `codewhale` desde un checkout de este repo. Eso es todo.
|
Lee `AGENTS.md` desde la raíz del proyecto, sin configuración. Copia [`AGENTS.md`](AGENTS.md) a tu proyecto, o ejecuta `codewhale` desde un checkout de este repo. Eso es todo.
|
||||||
|
|
||||||
|
### Devin CLI
|
||||||
|
|
||||||
|
```bash
|
||||||
|
devin plugins install DietrichGebert/ponytail
|
||||||
|
```
|
||||||
|
|
||||||
|
Instala ponytail como plugin de Devin; los skills quedan disponibles como `/ponytail:ponytail`, `/ponytail:ponytail-review`, etc.
|
||||||
|
|
||||||
### OpenClaw
|
### OpenClaw
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -232,7 +240,7 @@ Qué archivos corresponden a qué agente: [Portabilidad de agentes](docs/agent-p
|
|||||||
| `/ponytail-debt` | Recolecta los atajos marcados con `ponytail:` que dejaste pendientes en un registro, para que "después" no se convierta en "nunca". |
|
| `/ponytail-debt` | Recolecta los atajos marcados con `ponytail:` que dejaste pendientes en un registro, para que "después" no se convierta en "nunca". |
|
||||||
| `/ponytail-help` | Referencia rápida de los comandos anteriores. |
|
| `/ponytail-help` | Referencia rápida de los comandos anteriores. |
|
||||||
|
|
||||||
Los comandos requieren un host compatible con skills (Claude Code, Codex, OpenCode, Gemini, pi). En Codex son skills; se invocan con `@` (`@ponytail-review`). Los adaptadores de solo instrucciones (Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity) cargan el ruleset permanente sin los comandos.
|
Los comandos requieren un host compatible con skills (Claude Code, Codex, Devin CLI, OpenCode, Gemini, pi, Swival). En Codex son skills; se invocan con `@` (`@ponytail-review`). Los adaptadores de solo instrucciones (Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity) cargan el ruleset permanente sin los comandos.
|
||||||
|
|
||||||
## Desarrollo
|
## Desarrollo
|
||||||
|
|
||||||
|
|||||||
+10
-2
@@ -15,7 +15,7 @@
|
|||||||
<img src="https://img.shields.io/github/stars/DietrichGebert/ponytail?style=flat-square&color=111111&label=stars" alt="Stars">
|
<img src="https://img.shields.io/github/stars/DietrichGebert/ponytail?style=flat-square&color=111111&label=stars" alt="Stars">
|
||||||
<img src="https://img.shields.io/github/v/release/DietrichGebert/ponytail?style=flat-square&color=111111&label=release" alt="Release">
|
<img src="https://img.shields.io/github/v/release/DietrichGebert/ponytail?style=flat-square&color=111111&label=release" alt="Release">
|
||||||
<img src="https://img.shields.io/npm/v/@dietrichgebert/ponytail?style=flat-square&color=111111&label=npm" alt="npm">
|
<img src="https://img.shields.io/npm/v/@dietrichgebert/ponytail?style=flat-square&color=111111&label=npm" alt="npm">
|
||||||
<img src="https://img.shields.io/badge/works%20with-14%20agents-111111?style=flat-square" alt="Works with 14 agents">
|
<img src="https://img.shields.io/badge/works%20with-15%20agents-111111?style=flat-square" alt="Works with 15 agents">
|
||||||
<img src="https://img.shields.io/badge/license-MIT-111111?style=flat-square" alt="MIT license">
|
<img src="https://img.shields.io/badge/license-MIT-111111?style=flat-square" alt="MIT license">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -217,6 +217,14 @@ Swival도 프로젝트 루트의 `AGENTS.md`와 전역의 `~/.config/swival/AGEN
|
|||||||
|
|
||||||
명령줄에서는 `$` 접두사로 스킬을 명시적으로 켠다. 예: `$ponytail-review`.
|
명령줄에서는 `$` 접두사로 스킬을 명시적으로 켠다. 예: `$ponytail-review`.
|
||||||
|
|
||||||
|
### Devin CLI
|
||||||
|
|
||||||
|
```bash
|
||||||
|
devin plugins install DietrichGebert/ponytail
|
||||||
|
```
|
||||||
|
|
||||||
|
ponytail을 Devin 플러그인으로 설치한다. 스킬은 `/ponytail:ponytail`, `/ponytail:ponytail-review` 등으로 쓸 수 있다.
|
||||||
|
|
||||||
### OpenClaw
|
### OpenClaw
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -252,7 +260,7 @@ Codex 확장을 쓰는 VS Code는 이 저장소가 함께 싣는 `AGENTS.md`를
|
|||||||
| `/ponytail-gain` | 벤치마크로 잰 효과 스코어보드(코드 절감, 비용 절감, 속도 향상)를 보여 준다. |
|
| `/ponytail-gain` | 벤치마크로 잰 효과 스코어보드(코드 절감, 비용 절감, 속도 향상)를 보여 준다. |
|
||||||
| `/ponytail-help` | 위 명령들의 빠른 참조. |
|
| `/ponytail-help` | 위 명령들의 빠른 참조. |
|
||||||
|
|
||||||
명령들은 스킬을 지원하는 호스트가 있어야 돈다(Claude Code, Codex, OpenCode, Gemini, pi). Codex에선 스킬이라 `@`로 부른다(`@ponytail-review`). 지시문 전용 어댑터(Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity)는 명령 없이 늘 켜진 룰셋만 불러온다.
|
명령들은 스킬을 지원하는 호스트가 있어야 돈다(Claude Code, Codex, Devin CLI, OpenCode, Gemini, pi, Swival). Codex에선 스킬이라 `@`로 부른다(`@ponytail-review`). 지시문 전용 어댑터(Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity)는 명령 없이 늘 켜진 룰셋만 불러온다.
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<img src="https://img.shields.io/github/stars/DietrichGebert/ponytail?style=flat-square&color=111111&label=stars" alt="Stars">
|
<img src="https://img.shields.io/github/stars/DietrichGebert/ponytail?style=flat-square&color=111111&label=stars" alt="Stars">
|
||||||
<img src="https://img.shields.io/github/v/release/DietrichGebert/ponytail?style=flat-square&color=111111&label=release" alt="Release">
|
<img src="https://img.shields.io/github/v/release/DietrichGebert/ponytail?style=flat-square&color=111111&label=release" alt="Release">
|
||||||
<img src="https://img.shields.io/npm/v/@dietrichgebert/ponytail?style=flat-square&color=111111&label=npm" alt="npm">
|
<img src="https://img.shields.io/npm/v/@dietrichgebert/ponytail?style=flat-square&color=111111&label=npm" alt="npm">
|
||||||
<img src="https://img.shields.io/badge/works%20with-14%20agents-111111?style=flat-square" alt="Works with 14 agents">
|
<img src="https://img.shields.io/badge/works%20with-15%20agents-111111?style=flat-square" alt="Works with 15 agents">
|
||||||
<img src="https://img.shields.io/badge/license-MIT-111111?style=flat-square" alt="MIT license">
|
<img src="https://img.shields.io/badge/license-MIT-111111?style=flat-square" alt="MIT license">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -217,6 +217,14 @@ Swival also reads `AGENTS.md` from the project root and `~/.config/swival/AGENTS
|
|||||||
|
|
||||||
On the command line, use a `$` prefix to explicitly activate a skill. For example: `$ponytail-review`.
|
On the command line, use a `$` prefix to explicitly activate a skill. For example: `$ponytail-review`.
|
||||||
|
|
||||||
|
### Devin CLI
|
||||||
|
|
||||||
|
```bash
|
||||||
|
devin plugins install DietrichGebert/ponytail
|
||||||
|
```
|
||||||
|
|
||||||
|
Installs ponytail as a Devin plugin; skills are available as `/ponytail:ponytail`, `/ponytail:ponytail-review`, and so on.
|
||||||
|
|
||||||
### OpenClaw
|
### OpenClaw
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -247,6 +255,7 @@ Which files map to which agent: [Agent portability](docs/agent-portability.md).
|
|||||||
|------|---------|
|
|------|---------|
|
||||||
| Claude Code | `/plugin remove ponytail` |
|
| Claude Code | `/plugin remove ponytail` |
|
||||||
| Codex | `codex plugin remove ponytail` |
|
| Codex | `codex plugin remove ponytail` |
|
||||||
|
| Devin CLI | `devin plugins remove ponytail` |
|
||||||
| Pi agent | `pi uninstall ponytail` |
|
| Pi agent | `pi uninstall ponytail` |
|
||||||
| Cursor / Windsurf / Cline / etc. | Delete the copied rule file |
|
| Cursor / Windsurf / Cline / etc. | Delete the copied rule file |
|
||||||
|
|
||||||
@@ -263,7 +272,7 @@ These remove the plugin's own files. They leave behind a small amount of state p
|
|||||||
| `/ponytail-gain` | Show the measured impact scoreboard (less code, less cost, more speed) from the benchmark. |
|
| `/ponytail-gain` | Show the measured impact scoreboard (less code, less cost, more speed) from the benchmark. |
|
||||||
| `/ponytail-help` | Quick reference for the commands above. |
|
| `/ponytail-help` | Quick reference for the commands above. |
|
||||||
|
|
||||||
Commands need a skill-capable host (Claude Code, Codex, OpenCode, Gemini, pi, Swival). In Codex they're skills, invoke with `@` (`@ponytail-review`). The instruction-only adapters (Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity) load the always-on ruleset without the commands.
|
Commands need a skill-capable host (Claude Code, Codex, Devin CLI, OpenCode, Gemini, pi, Swival). In Codex they're skills, invoke with `@` (`@ponytail-review`). The instruction-only adapters (Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity) load the always-on ruleset without the commands.
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
// Version-consistency guard. Ponytail declares its version in six files across
|
// Version-consistency guard. Ponytail declares its version in seven files across
|
||||||
// four host ecosystems, and every release bumps all of them by hand.
|
// five host ecosystems, and every release bumps all of them by hand.
|
||||||
//
|
//
|
||||||
// tests/gemini-extension.test.js already checks the four plugin manifests agree
|
// tests/gemini-extension.test.js already checks the four plugin manifests agree
|
||||||
// with each other, but that can't catch the failure mode that shipped in v4.8.0:
|
// with each other, but that can't catch the failure mode that shipped in v4.8.0:
|
||||||
@@ -19,12 +19,13 @@ const PINNED_SEMVER = /^\d+\.\d+\.\d+$/;
|
|||||||
// Every file that declares the project version, and who reads it. Add new host
|
// Every file that declares the project version, and who reads it. Add new host
|
||||||
// manifests here so a future ecosystem can't drift unnoticed.
|
// manifests here so a future ecosystem can't drift unnoticed.
|
||||||
const VERSION_FILES = [
|
const VERSION_FILES = [
|
||||||
'.claude-plugin/plugin.json', // Claude Code plugin — what users install
|
'.claude-plugin/plugin.json', // Claude Code plugin — what users install
|
||||||
'.codex-plugin/plugin.json', // Codex plugin
|
'.codex-plugin/plugin.json', // Codex plugin
|
||||||
'.github/plugin/plugin.json', // Copilot plugin
|
'.devin-plugin/plugin.json', // Devin CLI plugin
|
||||||
'gemini-extension.json', // Gemini CLI extension
|
'.github/plugin/plugin.json', // Copilot plugin
|
||||||
'package.json', // pi-package / repo root
|
'gemini-extension.json', // Gemini CLI extension
|
||||||
'ponytail-mcp/package.json', // MCP server (private, internal-only)
|
'package.json', // pi-package / repo root
|
||||||
|
'ponytail-mcp/package.json', // MCP server (private, internal-only)
|
||||||
];
|
];
|
||||||
|
|
||||||
function readVersion(relPath) {
|
function readVersion(relPath) {
|
||||||
|
|||||||
Reference in New Issue
Block a user