Compare commits

..
Author SHA1 Message Date
Emeriko c176ec1b3d Add a Sponsors section with GreenPT as the first sponsor 2026-06-26 00:21:44 +02:00
5 changed files with 14 additions and 53 deletions
-13
View File
@@ -1,13 +0,0 @@
{
"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"]
}
+2 -10
View File
@@ -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-15%20agentes-111111?style=flat-square" alt="Works with 15 agents"> <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/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,14 +198,6 @@ 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
@@ -240,7 +232,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, 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. 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.
## Desarrollo ## Desarrollo
+2 -10
View File
@@ -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-15%20agents-111111?style=flat-square" alt="Works with 15 agents"> <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/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,14 +217,6 @@ 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
@@ -260,7 +252,7 @@ Codex 확장을 쓰는 VS Code는 이 저장소가 함께 싣는 `AGENTS.md`를
| `/ponytail-gain` | 벤치마크로 잰 효과 스코어보드(코드 절감, 비용 절감, 속도 향상)를 보여 준다. | | `/ponytail-gain` | 벤치마크로 잰 효과 스코어보드(코드 절감, 비용 절감, 속도 향상)를 보여 준다. |
| `/ponytail-help` | 위 명령들의 빠른 참조. | | `/ponytail-help` | 위 명령들의 빠른 참조. |
명령들은 스킬을 지원하는 호스트가 있어야 돈다(Claude Code, Codex, Devin CLI, OpenCode, Gemini, pi, Swival). Codex에선 스킬이라 `@`로 부른다(`@ponytail-review`). 지시문 전용 어댑터(Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity)는 명령 없이 늘 켜진 룰셋만 불러온다. 명령들은 스킬을 지원하는 호스트가 있어야 돈다(Claude Code, Codex, OpenCode, Gemini, pi). Codex에선 스킬이라 `@`로 부른다(`@ponytail-review`). 지시문 전용 어댑터(Cursor, Windsurf, Cline, Copilot, Kiro, Antigravity)는 명령 없이 늘 켜진 룰셋만 불러온다.
## Development ## Development
+2 -11
View File
@@ -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-15%20agents-111111?style=flat-square" alt="Works with 15 agents"> <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/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,14 +217,6 @@ 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
@@ -255,7 +247,6 @@ 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 |
@@ -272,7 +263,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, 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. 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.
## Development ## Development
+8 -9
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env node #!/usr/bin/env node
// Version-consistency guard. Ponytail declares its version in seven files across // Version-consistency guard. Ponytail declares its version in six files across
// five host ecosystems, and every release bumps all of them by hand. // four 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,13 +19,12 @@ 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
'.devin-plugin/plugin.json', // Devin CLI plugin '.github/plugin/plugin.json', // Copilot plugin
'.github/plugin/plugin.json', // Copilot plugin 'gemini-extension.json', // Gemini CLI extension
'gemini-extension.json', // Gemini CLI extension 'package.json', // pi-package / repo root
'package.json', // pi-package / repo root 'ponytail-mcp/package.json', // MCP server (private, internal-only)
'ponytail-mcp/package.json', // MCP server (private, internal-only)
]; ];
function readVersion(relPath) { function readVersion(relPath) {