@joaomj/pi-attention-span 0.8.0
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/LICENSE +661 -0
- package/PI.md +46 -0
- package/README.es-ES.md +240 -0
- package/README.md +339 -0
- package/README.zh-CN.md +315 -0
- package/VERSION +1 -0
- package/extensions/attention-span.ts +126 -0
- package/extensions/styles.generated.ts +102 -0
- package/package.json +40 -0
- package/skills/attention-kind/SKILL.md +56 -0
- package/skills/rundown/SKILL.md +27 -0
- package/skills/spartan/SKILL.md +30 -0
- package/skills/tldr/SKILL.md +43 -0
package/PI.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Attention Span for Pi
|
|
2
|
+
|
|
3
|
+
This fork adds [Pi coding agent](https://pi.dev) support to
|
|
4
|
+
[attention-span](https://github.com/alexgreensh/attention-span) (v0.8, AGPL-3.0):
|
|
5
|
+
the same three output styles plus `/tldr`, installable as a Pi package.
|
|
6
|
+
Upstream files are untouched; Pi support lives in `package.json`,
|
|
7
|
+
`extensions/`, `scripts/gen-pi.py`, and this file, so upstream merges stay clean.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pi install git:github.com/joaomj/attention-span
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Then `/reload` in a running session. The package provides:
|
|
16
|
+
|
|
17
|
+
- `/style` — persistent output style switcher (`attention-kind`, `spartan`,
|
|
18
|
+
`rundown`, or back to `Default`). Off by default: zero passive context
|
|
19
|
+
until you opt in. The choice persists in `attention-span.json` and takes
|
|
20
|
+
effect on the next request.
|
|
21
|
+
- `/skill:attention-kind`, `/skill:spartan`, `/skill:rundown`, `/skill:tldr` —
|
|
22
|
+
on-demand versions of the same wording, loaded only when invoked.
|
|
23
|
+
|
|
24
|
+
## Update
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
pi update --extensions
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
To pull in new upstream styles after a merge from upstream, regenerate the
|
|
31
|
+
embedded style bodies and commit the result:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
python3 scripts/gen-pi.py
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
This keeps the `/style` extension byte-identical to the on-demand skills.
|
|
38
|
+
|
|
39
|
+
## Layout
|
|
40
|
+
|
|
41
|
+
| Path | Purpose |
|
|
42
|
+
|---|---|
|
|
43
|
+
| `extensions/attention-span.ts` | Hand-written `/style` command + per-run injection |
|
|
44
|
+
| `extensions/styles.generated.ts` | Style bodies generated from `skills/*/SKILL.md` (do not edit) |
|
|
45
|
+
| `skills/` | Upstream on-demand skills, advertised to Pi as-is |
|
|
46
|
+
| `scripts/gen-pi.py` | Regenerates the above from skills + syncs the package version |
|
package/README.es-ES.md
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="assets/banner.svg" alt="Attention Span — presta atención, no tokens" width="820">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://github.com/alexgreensh/attention-span/releases"><img src="https://img.shields.io/github/v/release/alexgreensh/attention-span?label=versi%C3%B3n&color=6f42c1" alt="Última versión"></a>
|
|
9
|
+
<img src="https://img.shields.io/github/directory-file-count/alexgreensh/attention-span/output-styles?type=file&extension=md&label=estilos&color=blue" alt="estilos">
|
|
10
|
+
<img src="https://img.shields.io/badge/trabajo-intacto-2ea44f" alt="trabajo intacto (benchmark con tests ocultos)">
|
|
11
|
+
<a href="LICENSE"><img src="https://img.shields.io/github/license/alexgreensh/attention-span?color=orange" alt="AGPL-3.0"></a>
|
|
12
|
+
<img src="https://img.shields.io/badge/para-Claude%20Code-d97757" alt="Para Claude Code">
|
|
13
|
+
<a href="https://github.com/alexgreensh/attention-span/stargazers"><img src="https://img.shields.io/github/stars/alexgreensh/attention-span?style=social" alt="Estrellas"></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center"><img src="assets/hero.png" alt="Mascota de Attention Span" width="900"></p>
|
|
17
|
+
|
|
18
|
+
<p align="center"><a href="README.md">English</a> · <b>Español</b> · <a href="README.zh-CN.md">中文</a></p>
|
|
19
|
+
|
|
20
|
+
Una pequeña colección de [estilos de salida](https://code.claude.com/docs/en/output-styles) para Claude Code que cambian *cómo te habla*, no cómo codifica. Primero la respuesta, lenguaje claro, fácil de escanear. Cada uno es un único archivo markdown que añades y activas.
|
|
21
|
+
|
|
22
|
+
Las reglas de concisión por defecto cuidan tu atención primero. Reducir la salida de Claude es un efecto secundario bienvenido, no el objetivo.
|
|
23
|
+
|
|
24
|
+
Tres hasta ahora: **Attention-kind** (el principal), **Spartan** (conciso, cero calidez) y **Rundown** (informes breves). Cada uno tiene su propia sección a continuación.
|
|
25
|
+
|
|
26
|
+
## Attention-kind
|
|
27
|
+
|
|
28
|
+
Un estilo apto para TDAH. Claude responde primero, se mantiene breve, elimina la jerga técnica y solo amplía lo que realmente merece tu atención. Cada punto está espaciado y marcado con un `→`, y las palabras importantes están en **negrita**, para que puedas escanear solo lo en negrita y obtener la respuesta completa.
|
|
29
|
+
|
|
30
|
+
La misma capacidad de ingeniería por debajo. Solo cambia la forma de entrega.
|
|
31
|
+
|
|
32
|
+
**Para quién es:** para cualquiera cuya atención sea un recurso limitado. TDAH, cansado, en pleno estado de flujo o simplemente harto de muros de texto.
|
|
33
|
+
|
|
34
|
+
### Antes / después
|
|
35
|
+
|
|
36
|
+
La pregunta: **"¿Qué base de datos debería usar para una nueva aplicación social, PostgreSQL o MongoDB?"** La misma respuesta, antes y después del estilo.
|
|
37
|
+
|
|
38
|
+
<table>
|
|
39
|
+
<tr>
|
|
40
|
+
<th align="left" width="50%">Predeterminado · 430 palabras</th>
|
|
41
|
+
<th align="left" width="50%">Attention-kind · 94 palabras</th>
|
|
42
|
+
</tr>
|
|
43
|
+
<tr valign="top">
|
|
44
|
+
<td>
|
|
45
|
+
|
|
46
|
+
Para una nueva aplicación social, comienza con PostgreSQL, y el umbral para elegir MongoDB en su lugar es alto. Las apps sociales son intensas en relaciones por naturaleza: los usuarios siguen a otros usuarios, las publicaciones pertenecen a usuarios, los comentarios pertenecen a publicaciones, los likes conectan usuarios con publicaciones. Es una red de conexiones, exactamente para lo que se construyó una base de datos relacional. En MongoDB, o metes los datos relacionados en un solo registro y luchas con los límites de tamaño, o los separas y terminas uniéndolos de nuevo en el código de tu app de todos modos. El problema del feed empeora esto: las cronologías, "publicaciones de personas que sigues" y búsquedas de amigos mutuos dependen del tipo de cruzamiento de referencias que Postgres hace en una sola consulta. También obtienes consistencia gratis, ya que los conteos de seguidores y las verificaciones de "¿ya me gustó esto?" requieren transacciones reales… *[y continúa así]*
|
|
47
|
+
|
|
48
|
+
</td>
|
|
49
|
+
<td>
|
|
50
|
+
|
|
51
|
+
**→ Usa PostgreSQL.** Una app social son todas relaciones (amigos, seguidores, likes), y Postgres las maneja de forma nativa. Apta para ~90% de las nuevas apps sociales.
|
|
52
|
+
|
|
53
|
+
**→ Mantienes flexibilidad.** Su columna JSONB almacena datos sin esquema dentro de la misma base de datos, así que obtienes la flexibilidad de MongoDB sin salir de Postgres.
|
|
54
|
+
|
|
55
|
+
**→ Elige MongoDB solo si** tus datos son documentos autónomos sin enlaces, y necesitas un volumen masivo de escritura desde el día uno.
|
|
56
|
+
|
|
57
|
+
**→ La trampa temprana con MongoDB:** a los seis meses, cinco formas diferentes de "usuario" y sin solución limpia. Postgres impone la estructura.
|
|
58
|
+
|
|
59
|
+
**→ Siguiente:** comienza con Postgres gestionado (Supabase, Neon, RDS).
|
|
60
|
+
|
|
61
|
+
</td>
|
|
62
|
+
</tr>
|
|
63
|
+
</table>
|
|
64
|
+
|
|
65
|
+
La misma información. Una de ellas puedes leerla de un vistazo.
|
|
66
|
+
|
|
67
|
+
### ¿Realmente ayuda? (medido y reproducible)
|
|
68
|
+
|
|
69
|
+
El benchmark mide el trabajo y la salida por separado, y las cifras principales no usan **ningún juez LLM**. Cada número es reproducible desde este repositorio. [Explicación completa y harness ejecutable.](benchmarks/results/2026-08-11-benchmark.md)
|
|
70
|
+
|
|
71
|
+
- **El trabajo queda intacto.** 12 tareas de código con suites de tests ocultos, con estilo y sin estilo: las tasas de acierto son iguales (**ambas 97%**, dentro del ruido). Sin juez, solo tests que pasan.
|
|
72
|
+
- **~43% menos de salida** de media (mediana 41%), y **50-71% en respuestas extensas** donde importa; las respuestas ya cortas apenas cambian.
|
|
73
|
+
- **Llegas al punto en ~6 palabras en lugar de ~40.** La respuesta está en la primera línea el **75%** de las veces frente al **3%**. (Los índices de legibilidad no aplican, solo miden la longitud de las palabras y no ven un muro de texto.)
|
|
74
|
+
- **Los entregables salen limpios el 88% de las veces** frente al 12% sin estilo: pides un mensaje o un commit y obtienes justo eso, sin envoltorio.
|
|
75
|
+
|
|
76
|
+
Es más corto, más claro y fácil de captar de un vistazo, con el trabajo intacto. No afirmamos que produzca mejores respuestas, no es para eso.
|
|
77
|
+
|
|
78
|
+
### ¿Qué cambia?
|
|
79
|
+
|
|
80
|
+
- **Respuesta primero.** Conclusión en la primera línea. Sin preámbulo.
|
|
81
|
+
- **Breve por defecto.** Dice lo mínimo necesario para responder completamente, y se detiene.
|
|
82
|
+
- **Amplía solo lo vital**, para que la longitud en sí misma señale importancia.
|
|
83
|
+
- **Lenguaje claro.** Los términos técnicos raros obtienen una definición de cinco palabras, una sola vez.
|
|
84
|
+
- **Diseñado para escanear.** Marcadores `→`, negritas pesadas, espaciado real entre puntos.
|
|
85
|
+
- **Sin repeticiones.** Cada punto hace un argumento distinto, nunca se reitera ni se reargumenta.
|
|
86
|
+
- **Re-anclaje en tareas largas** y hace una pregunta a la vez, para que nunca pierdas el hilo.
|
|
87
|
+
- **También los comentarios.** Los comentarios de código heredan la regla de lenguaje claro de "explicar el porqué", pero nunca el formato de chat.
|
|
88
|
+
|
|
89
|
+
## Spartan
|
|
90
|
+
|
|
91
|
+
<p align="center"><img src="assets/cat-spartan.png" alt="Un gato con casco espartano apunta su láser a una línea iluminada" width="860"></p>
|
|
92
|
+
|
|
93
|
+
Modo conciso con la calidez eliminada. Mismas flechas y negritas que Attention-kind, pero directo e imperativo, sin suavizantes, sin transiciones, máxima compresión. Para trabajo enfocado cuando quieres señal, no conversación.
|
|
94
|
+
|
|
95
|
+
La pregunta: **"Tres prioridades esta semana, espacio para dos, ¿cómo decido qué cortar?"** Ambos son salidas reales de evaluación de Opus 5.
|
|
96
|
+
|
|
97
|
+
<table>
|
|
98
|
+
<tr>
|
|
99
|
+
<th align="left" width="50%">Predeterminado · 310 palabras</th>
|
|
100
|
+
<th align="left" width="50%">Spartan · 168 palabras</th>
|
|
101
|
+
</tr>
|
|
102
|
+
<tr valign="top">
|
|
103
|
+
<td>
|
|
104
|
+
|
|
105
|
+
Corta la que falle la prueba más barata: si se retrasa una semana, quién realmente lo siente y cuánto. Pasa las tres por cuatro filtros rápidos y el perdedor suele caerse por su cuenta. Consecuencia del retraso: dos de tus tres probablemente tienen fechas límite blandas que inventaste y una tiene una real, una persona esperando, una dependencia aguas abajo, una ventana que se cierra. Corta de la pila autoimpuesta, nunca de la pila donde alguien está bloqueado por ti. Reversibilidad: algunas cosas se vuelven más difíciles cuanto más esperan, otras son exactamente igual de fáciles la semana que viene, así que corta la cuya curva de costo es plana. Quién la posee además de tú: si una prioridad puede delegarse o hacerse al 80% por otro, es un mejor corte que una que solo tú puedes hacer… *[y continúa así]*
|
|
106
|
+
|
|
107
|
+
</td>
|
|
108
|
+
<td>
|
|
109
|
+
|
|
110
|
+
**→ Ordena por el costo de NO hacerlo, no por esfuerzo o interés.** Pregunta a cada una: qué se rompe si esto se retrasa una semana. La que tenga la consecuencia más blanda se corta.
|
|
111
|
+
|
|
112
|
+
**→ Elimina la reversible.** Si una tarea puede esperar, delegarse o reiniciarse después sin penalización, córtala. Protege lo que tenga una **fecha límite dura** o una **dependencia** donde otros estén bloqueados por ti.
|
|
113
|
+
|
|
114
|
+
**→ Haz la prueba del arrepentimiento.** Viernes por la noche, ¿qué tarea sin hacer duele más? Quédate con esa. La que haría que fruncieras el ceño es tu corte.
|
|
115
|
+
|
|
116
|
+
**→ Separa lo ruidoso de lo importante.** La prioridad que te grita a menudo es solo la más **ansiosa**, no la más valiosa. Corta por impacto, no por volumen.
|
|
117
|
+
|
|
118
|
+
**→ No hagas las tres a medias.** Dos terminadas superan a tres al 66%. El trabajo parcial en la tercera es la trampa, se siente productivo y no entrega nada.
|
|
119
|
+
|
|
120
|
+
**→ Córtalo en voz alta.** Dile a quien esté afectado ahora, no el viernes. Un corte que se marca es una decisión, un corte que se esconde es un **fracaso con retraso**.
|
|
121
|
+
|
|
122
|
+
</td>
|
|
123
|
+
</tr>
|
|
124
|
+
</table>
|
|
125
|
+
|
|
126
|
+
La misma garantía de solo-estilo que Attention-kind: más corto, más escaneable, con el trabajo intacto. Ver el [benchmark](benchmarks/results/2026-08-11-benchmark.md).
|
|
127
|
+
|
|
128
|
+
## Rundown
|
|
129
|
+
|
|
130
|
+
<p align="center"><img src="assets/cat-rundown.png" alt="El gato de Rundown apunta su láser a una lista de verificación, una línea iluminada" width="860"></p>
|
|
131
|
+
|
|
132
|
+
Estilo de informe breve. Se abre con un **TL;DR**, muestra el estado como una lista de verificación ✅ / 🟡 / ⬜, etiqueta las siguientes opciones con emojis. Diseñado para actualizaciones de estado y reuniones diarias. **Optimiza la legibilidad y el escaneo, no la brevedad**, así que úsalo cuando la claridad sea más importante que la longitud. Incluye un mecanismo para evitar inventar estados que no se le dieron.
|
|
133
|
+
|
|
134
|
+
La pregunta: **"Resume en qué va la contratación: 20 candidatos, 5 filtrados, 2 entrevistas, sin oferta, un candidato fuerte que se escapa."** Ambos son salidas reales de evaluación de Opus 5.
|
|
135
|
+
|
|
136
|
+
<table>
|
|
137
|
+
<tr>
|
|
138
|
+
<th align="left" width="50%">Predeterminado · un párrafo que lees</th>
|
|
139
|
+
<th align="left" width="50%">Rundown · un tablero que escaneas</th>
|
|
140
|
+
</tr>
|
|
141
|
+
<tr valign="top">
|
|
142
|
+
<td>
|
|
143
|
+
|
|
144
|
+
La contratación está en la parte superior del embudo y delgada en la inferior. Veinte solicitudes dentro, cinco filtradas, dos entrevistas reservadas. Aún no se ha enviado ninguna oferta, y esa brecha es el problema: uno de los candidatos más fuertes se está enfriando mientras el proceso se queda inactivo. Los números: solicitudes 20, filtradas 5, entrevistas reservadas 2, ofertas enviadas 0, en riesgo 1 candidato fuerte que se escapa. La lectura: esto es un problema de velocidad, no de suministro. El embudo es saludable arriba, pero nada se ha convertido en una oferta, y la mejor prospectiva se está desvaneciendo. El movimiento de mayor valor es acelerar al candidato que se escapa antes de que el retraso decida por nosotros. Cuello de botella: la etapa de oferta… *[y continúa así]*
|
|
145
|
+
|
|
146
|
+
</td>
|
|
147
|
+
<td>
|
|
148
|
+
|
|
149
|
+
TL;DR: El embudo es saludable arriba pero la meta final se está estancando, y tu mejor candidato está a punto de marcharse.
|
|
150
|
+
|
|
151
|
+
**Embudo de contratación**
|
|
152
|
+
- ☑️ **Solicitudes recibidas:** 20 fuente
|
|
153
|
+
- ☑️ **Filtrados:** 5 de 20 hechos
|
|
154
|
+
- 🟡 **Entrevistas:** 2 reservadas, aún no realizadas
|
|
155
|
+
- ⬜ **Oferta:** no redactada, no enviada
|
|
156
|
+
|
|
157
|
+
🔴 **Bloqueo:** Un candidato fuerte se está escapando. Sin movimiento de oferta significa que los pierdes por defecto.
|
|
158
|
+
|
|
159
|
+
**Tu jugada:**
|
|
160
|
+
- 🚀 Acelera al candidato fuerte, salta directamente a hablar de oferta hoy
|
|
161
|
+
- 📞 Realiza las 2 entrevistas reservadas antes de decidir
|
|
162
|
+
- 📋 Filtra más de las 15 solicitudes sin tocar para tener respaldos
|
|
163
|
+
- ✍️ Redacta la oferta ahora para que esté lista para enviar
|
|
164
|
+
|
|
165
|
+
Elige uno: salva al candidato ahora, o ejecuta el proceso completo y arriesga perderlos?
|
|
166
|
+
|
|
167
|
+
</td>
|
|
168
|
+
</tr>
|
|
169
|
+
</table>
|
|
170
|
+
|
|
171
|
+
## ¿De verdad quieres reducir tu factura de tokens?
|
|
172
|
+
|
|
173
|
+
Attention Span existe para que las respuestas de tus agentes sean legibles y fáciles de captar de un vistazo. La factura de tokens más ligera en esas respuestas es un efecto secundario bienvenido. Si reducir el gasto de tokens es tu verdadero objetivo, el costo mayor es el *trabajo* que hace tu agente, no cómo habla, y dos herramientas hermanas van directas a ello, combinando de forma natural con estos estilos:
|
|
174
|
+
|
|
175
|
+
<p align="center"><img src="assets/save-tokens.png" alt="El mago Outsourcerer y el gato de Attention Span aspirando tokens fantasma con Token Optimizer" width="900"></p>
|
|
176
|
+
|
|
177
|
+
**[Token Optimizer](https://github.com/alexgreensh/token-optimizer)** ataca las tres capas de desperdicio de tokens que la mayoría de las herramientas nunca tocan:
|
|
178
|
+
|
|
179
|
+
- **Estructural**, p. ej. configuraciones infladas, skills sin usar, memoria obsoleta
|
|
180
|
+
- **En ejecución**, p. ej. salida verbosa, relecturas
|
|
181
|
+
- **De comportamiento**, p. ej. mal enrutamiento de modelos, expiración de caché, bucles de reintentos
|
|
182
|
+
|
|
183
|
+
...y más en cada una. Además, comprime tu stack de salida, hace checkpoints y restaura tu trabajo para que tus sesiones sigan continuas a través de la compactación, y pone cada token y dólar ahorrado en un panel en vivo. También es la única herramienta que mide la calidad de tu contexto y se ajusta a ella, porque una sesión más barata que hace peor trabajo no es ningún ahorro.
|
|
184
|
+
|
|
185
|
+
*Funciona en Claude Code, Codex, OpenCode, OpenClaw, Hermes y Copilot.*
|
|
186
|
+
|
|
187
|
+
**[Outsourcerer](https://github.com/alexgreensh/outsourcerer)** — quédate en una sola sesión del agente que más te guste. En segundo plano:
|
|
188
|
+
|
|
189
|
+
- ejecuta un escuadrón entre los modelos y harnesses que ya pagas
|
|
190
|
+
- elige el mejor para cada tarea **por benchmark, no solo por precio**
|
|
191
|
+
- revisa su trabajo y vigila tus límites en cada motor
|
|
192
|
+
|
|
193
|
+
Tú mantienes la cabina; el trabajo pesado ocurre en otra parte.
|
|
194
|
+
|
|
195
|
+
*Funciona en Claude Code, Codex, Antigravity, Devin, Droid, Cursor, Warp y Hermes.*
|
|
196
|
+
|
|
197
|
+
Attention Span reduce cuánto dice Claude. Estas dos gobiernan lo que gasta todo tu stack.
|
|
198
|
+
|
|
199
|
+
## Instalación
|
|
200
|
+
|
|
201
|
+
**1.** Coloca el estilo en tu carpeta de output-styles. Global (para todos los proyectos):
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
mkdir -p ~/.claude/output-styles
|
|
205
|
+
curl -o ~/.claude/output-styles/attention-kind.md \
|
|
206
|
+
https://raw.githubusercontent.com/alexgreensh/attention-span/main/output-styles/attention-kind.md
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
O colócalo en `.claude/output-styles/` dentro de un solo proyecto.
|
|
210
|
+
|
|
211
|
+
**2.** Establécelo como predeterminado en `~/.claude/settings.json`. Haz esto una vez y estará activado en cada sesión, para siempre:
|
|
212
|
+
|
|
213
|
+
```json
|
|
214
|
+
{ "outputStyle": "Attention-kind" }
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**3.** Reinicia o escribe `/clear`. Eso es todo.
|
|
218
|
+
|
|
219
|
+
¿Quieres probarlo en una sesión primero? Ejecuta `/config` y selecciónalo bajo *Estilo de salida*, luego establece el predeterminado anterior una vez que estés convencido.
|
|
220
|
+
|
|
221
|
+
**Costo:** ~650 tokens, añadidos una vez por sesión y almacenados en caché después de la primera solicitud. El benchmark midió ~43% menos de salida, así que el costo de entrada es insignificante tras la primera respuesta.
|
|
222
|
+
|
|
223
|
+
## Los estilos
|
|
224
|
+
|
|
225
|
+
| Estilo | Archivo | Mejor para |
|
|
226
|
+
|---|---|---|
|
|
227
|
+
| Attention-kind | [`output-styles/attention-kind.md`](output-styles/attention-kind.md) | TDAH, fatiga de atención, cualquiera cansado de muros de texto |
|
|
228
|
+
| Spartan | [`output-styles/spartan.md`](output-styles/spartan.md) | Modo Spartan: máxima señal, cero calidez, trabajo enfocado |
|
|
229
|
+
| Rundown | [`output-styles/rundown.md`](output-styles/rundown.md) | Informes breves, reuniones diarias, actualizaciones de progreso (TL;DR + casillas) |
|
|
230
|
+
|
|
231
|
+
Cada uno es un archivo markdown legible, fácil de adaptar.
|
|
232
|
+
|
|
233
|
+
## Notas
|
|
234
|
+
|
|
235
|
+
- Los estilos se aplican **solo a la conversación principal**. Los subagentes ejecutan su propio prompt.
|
|
236
|
+
- Estos mantienen intacto el comportamiento de codificación de Claude (`keep-coding-instructions: true`).
|
|
237
|
+
|
|
238
|
+
## Licencia
|
|
239
|
+
|
|
240
|
+
AGPL-3.0. Ver [LICENSE](LICENSE).
|
package/README.md
ADDED
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/banner.svg" alt="Attention Span — pay attention, not tokens" width="820">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://github.com/alexgreensh/attention-span/releases"><img src="https://img.shields.io/github/v/release/alexgreensh/attention-span?label=version&color=6f42c1" alt="Latest version"></a>
|
|
7
|
+
<img src="https://img.shields.io/github/directory-file-count/alexgreensh/attention-span/output-styles?type=file&extension=md&label=styles&color=blue" alt="styles">
|
|
8
|
+
<img src="https://img.shields.io/badge/work-unchanged-2ea44f" alt="work unchanged (hidden-test benchmark)">
|
|
9
|
+
<a href="LICENSE"><img src="https://img.shields.io/github/license/alexgreensh/attention-span?color=orange" alt="AGPL-3.0"></a>
|
|
10
|
+
<img src="https://img.shields.io/badge/for-Claude%20Code-d97757" alt="For Claude Code">
|
|
11
|
+
<a href="https://github.com/alexgreensh/attention-span/stargazers"><img src="https://img.shields.io/github/stars/alexgreensh/attention-span?style=social" alt="Stars"></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center"><img src="assets/hero.png" alt="Attention Span mascot" width="900"></p>
|
|
15
|
+
|
|
16
|
+
<p align="center"><b>English</b> · <a href="README.es-ES.md">Español</a> · <a href="README.zh-CN.md">中文</a></p>
|
|
17
|
+
|
|
18
|
+
A small collection of [output styles](https://code.claude.com/docs/en/output-styles) for Claude Code that change how it *talks to you*, not how it codes. Answer-first, plain English, easy to skim. Each one is a single markdown file you drop in and switch on.
|
|
19
|
+
|
|
20
|
+
The concise-by-default rules are kind to your attention first. Trimming Claude's output is a welcome side effect, not the point.
|
|
21
|
+
|
|
22
|
+
Three so far: **Attention-kind** (the flagship), **Spartan** (terse, zero warmth), and **Rundown** (TL;DR briefings). Each has its own section below.
|
|
23
|
+
|
|
24
|
+
## Attention-kind
|
|
25
|
+
|
|
26
|
+
An ADHD-friendly style. Claude answers first, keeps it short, drops the jargon, and expands only on what's actually worth your attention. Every point is spaced out and marked with a `→`, and the important words are **bold**, so you can skim just the bold and still get the whole answer.
|
|
27
|
+
|
|
28
|
+
Same engineering ability underneath. Only the delivery changes.
|
|
29
|
+
|
|
30
|
+
**Who it's for:** anyone whose attention is a limited resource. ADHD, tired, deep in flow, or just done with walls of text.
|
|
31
|
+
|
|
32
|
+
### Before / after
|
|
33
|
+
|
|
34
|
+
The question: **"Which database should I use for a new social app, PostgreSQL or MongoDB?"** Same answer, before and after the style.
|
|
35
|
+
|
|
36
|
+
<table>
|
|
37
|
+
<tr>
|
|
38
|
+
<th align="left" width="50%">Default · 430 words</th>
|
|
39
|
+
<th align="left" width="50%">Attention-kind · 94 words</th>
|
|
40
|
+
</tr>
|
|
41
|
+
<tr valign="top">
|
|
42
|
+
<td>
|
|
43
|
+
|
|
44
|
+
For a new social app, start with PostgreSQL, and the bar for choosing MongoDB instead is high. Social apps are relationship-heavy by nature: users follow users, posts belong to users, comments belong to posts, likes connect users to posts. That's a web of connections, exactly what a relational database is built for. In MongoDB you either cram related data into one record and fight size limits, or split it out and end up stitching it back together in your app code anyway. The feed problem makes this worse: timelines, "posts from people you follow," and mutual-friend lookups all lean on the kind of cross-referencing Postgres does in a single query. You also get consistency for free, since follow counts and "did I already like this" checks want real transactions… *[and it keeps going like this]*
|
|
45
|
+
|
|
46
|
+
</td>
|
|
47
|
+
<td>
|
|
48
|
+
|
|
49
|
+
**→ Use PostgreSQL.** A social app is all relationships (friends, follows, likes), and Postgres handles those natively. Right for ~90% of new social apps.
|
|
50
|
+
|
|
51
|
+
**→ You keep flexibility.** Its JSONB column stores schema-less data inside the same database, so you get MongoDB's looseness without leaving Postgres.
|
|
52
|
+
|
|
53
|
+
**→ Pick MongoDB only if** your data is self-contained documents with no links, and you need massive write volume on day one.
|
|
54
|
+
|
|
55
|
+
**→ The early trap with MongoDB:** six months in, five different shapes of "user" and no clean fix. Postgres forces the structure.
|
|
56
|
+
|
|
57
|
+
**→ Next:** start on managed Postgres (Supabase, Neon, RDS).
|
|
58
|
+
|
|
59
|
+
</td>
|
|
60
|
+
</tr>
|
|
61
|
+
</table>
|
|
62
|
+
|
|
63
|
+
Same information. One of them you can read at a glance.
|
|
64
|
+
|
|
65
|
+
### Does it actually help? (measured, and reproducible)
|
|
66
|
+
|
|
67
|
+
The benchmark measures the work and the output separately, and the headline numbers use **no LLM judge**. Every figure is reproducible from this repo. [Full writeup and runnable harness.](benchmarks/results/2026-08-11-benchmark.md)
|
|
68
|
+
|
|
69
|
+
- **The work is untouched.** 12 coding tasks with hidden test suites, style off vs on: pass rates are equal (**both 97%**, within noise). No judge, just tests passing.
|
|
70
|
+
- **~43% shorter output** on average (median 41%), and **50-71% on verbose answers** where it matters; already-short answers barely change.
|
|
71
|
+
- **You reach the point in ~6 words instead of ~40.** The answer is in the first line **75%** of the time vs **3%**. (Reading-grade scores don't apply, they only measure word length and can't see a wall of text.)
|
|
72
|
+
- **Deliverables come out clean 88% of the time** vs 12% with no style, ask for a message or commit and you get just that, no wrapper.
|
|
73
|
+
|
|
74
|
+
It's shorter, clearer, and easy to grasp at a glance, with the work untouched. We don't claim it produces better answers, that isn't what it's for.
|
|
75
|
+
|
|
76
|
+
### What changes
|
|
77
|
+
|
|
78
|
+
- **Answer first.** Conclusion in line one. No wind-up.
|
|
79
|
+
- **Short by default.** Says the least that fully answers, then stops.
|
|
80
|
+
- **Expands only on what's vital**, so length itself signals importance.
|
|
81
|
+
- **Plain English.** Rare technical terms get a five-word definition, once.
|
|
82
|
+
- **Built to scan.** `→` markers, heavy bold, real spacing between points.
|
|
83
|
+
- **No repetition.** Each point makes one distinct argument, never restated or re-argued.
|
|
84
|
+
- **Re-anchors long tasks** and asks one question at a time, so you never lose the thread.
|
|
85
|
+
- **Comments too.** Code comments inherit the plain-English "explain the why" rule, but never the chat formatting.
|
|
86
|
+
|
|
87
|
+
## Spartan
|
|
88
|
+
|
|
89
|
+
<p align="center"><img src="assets/cat-spartan.png" alt="A cat in a Spartan helmet aims its laser at one lit line" width="860"></p>
|
|
90
|
+
|
|
91
|
+
Terse mode with the warmth stripped out. Same arrows and bold as Attention-kind, but blunt and imperative, no cushioning, no transitions, maximum compression. For heads-down work when you want signal, not conversation.
|
|
92
|
+
|
|
93
|
+
The question: **"Three priorities this week, room for two, how do I decide what to cut?"** Both real Opus 5 eval outputs.
|
|
94
|
+
|
|
95
|
+
<table>
|
|
96
|
+
<tr>
|
|
97
|
+
<th align="left" width="50%">Default · 310 words</th>
|
|
98
|
+
<th align="left" width="50%">Spartan · 168 words</th>
|
|
99
|
+
</tr>
|
|
100
|
+
<tr valign="top">
|
|
101
|
+
<td>
|
|
102
|
+
|
|
103
|
+
Cut the one that fails the cheapest test: if it slipped a week, who actually feels it, and how much? Run all three through four quick filters and the loser usually falls out on its own. Consequence of delay: two of your three probably have soft deadlines you invented and one has a real one, a person waiting, a dependency downstream, a window that closes. Cut from the self-imposed pile, never the someone-is-blocked-on-me pile. Reversibility: some things get harder the longer they wait, others are exactly as easy next week, so cut the one whose cost curve is flat. Who owns it besides you: if a priority can be delegated or done at 80% by someone else, it is a better cut than one only you can do… *[and it keeps going like this]*
|
|
104
|
+
|
|
105
|
+
</td>
|
|
106
|
+
<td>
|
|
107
|
+
|
|
108
|
+
**→ Rank by cost of NOT doing it, not by effort or interest.** Ask each: what breaks if this slips a week? The one with the softest consequence gets cut.
|
|
109
|
+
|
|
110
|
+
**→ Kill the reversible one.** If a task can wait, be delegated, or restarted later with no penalty, cut it. Protect anything with a **hard deadline** or a **dependency** where others are blocked on you.
|
|
111
|
+
|
|
112
|
+
**→ Run the regret test.** Friday night, which un-done task stings most? Keep that one. The one you'd shrug at is your cut.
|
|
113
|
+
|
|
114
|
+
**→ Separate loud from important.** The priority screaming at you is often just the most **anxious**, not the most valuable. Cut by impact, not by volume.
|
|
115
|
+
|
|
116
|
+
**→ Do not half-do all three.** Two finished beats three at 66%. Partial work on the third is the trap, it feels productive and ships nothing.
|
|
117
|
+
|
|
118
|
+
**→ Cut it out loud.** Tell whoever's affected now, not Friday. A cut you flag is a decision, a cut you hide is a **failure with a delay**.
|
|
119
|
+
|
|
120
|
+
</td>
|
|
121
|
+
</tr>
|
|
122
|
+
</table>
|
|
123
|
+
|
|
124
|
+
Same style-only guarantee as Attention-kind: shorter, more scannable, the work untouched. See the [benchmark](benchmarks/results/2026-08-11-benchmark.md).
|
|
125
|
+
|
|
126
|
+
## Rundown
|
|
127
|
+
|
|
128
|
+
<p align="center"><img src="assets/cat-rundown.png" alt="The Rundown cat aims its laser at a checklist, one line lit" width="860"></p>
|
|
129
|
+
|
|
130
|
+
Briefing style. Opens with a **TL;DR**, shows state as a ✅ / 🟡 / ⬜ / ❔ checklist, tags the next choices with emoji and numbers them so you can pick by number. Built for status updates and standups. **It optimizes for readability and scannability, not brevity**, so reach for it when clarity matters more than length. Includes a guard against inventing status it wasn't given.
|
|
131
|
+
|
|
132
|
+
The question: **"Summarize where hiring stands: 20 applicants, 5 screened, 2 interviews, no offer, one strong candidate slipping."** Both real Opus 5 eval outputs.
|
|
133
|
+
|
|
134
|
+
<table>
|
|
135
|
+
<tr>
|
|
136
|
+
<th align="left" width="50%">Default · a paragraph you read</th>
|
|
137
|
+
<th align="left" width="50%">Rundown · a board you scan</th>
|
|
138
|
+
</tr>
|
|
139
|
+
<tr valign="top">
|
|
140
|
+
<td>
|
|
141
|
+
|
|
142
|
+
Hiring stands at the top of the funnel and thin at the bottom. Twenty applicants in, five screened, two interviews booked. No offer has gone out yet, and that gap is the problem: one of the strongest candidates is cooling off while the process idles. The numbers: applicants 20, screened 5, interviews booked 2, offers out 0, at risk 1 strong candidate slipping away. The read: this is a speed problem, not a supply problem. The pipeline is healthy up top, but nothing has converted to an offer, and the best prospect is drifting. The highest-value move is to fast-track the slipping candidate before the delay decides for us. Bottleneck: the offer stage… *[and it keeps going like this]*
|
|
143
|
+
|
|
144
|
+
</td>
|
|
145
|
+
<td>
|
|
146
|
+
|
|
147
|
+
TL;DR: Pipeline is healthy up top but the finish line is stalling, and your best candidate is about to walk.
|
|
148
|
+
|
|
149
|
+
**Hiring funnel**
|
|
150
|
+
- ☑️ **Applicants in:** 20 sourced
|
|
151
|
+
- ☑️ **Screened:** 5 of 20 done
|
|
152
|
+
- 🟡 **Interviews:** 2 booked, not yet run
|
|
153
|
+
- ⬜ **Offer:** not drafted, not out
|
|
154
|
+
|
|
155
|
+
🔴 **Blocker:** One strong candidate is slipping. No offer motion means you lose them by default.
|
|
156
|
+
|
|
157
|
+
**Your move:**
|
|
158
|
+
1. 🚀 Fast-track the strong candidate, skip ahead to offer talk today
|
|
159
|
+
2. 📞 Run the 2 booked interviews before deciding
|
|
160
|
+
3. 📋 Screen more of the 15 untouched applicants for backup
|
|
161
|
+
4. ✍️ Draft the offer now so it is ready to fire
|
|
162
|
+
|
|
163
|
+
Pick a number: save the candidate now (1), or run the full process and risk losing them?
|
|
164
|
+
|
|
165
|
+
</td>
|
|
166
|
+
</tr>
|
|
167
|
+
</table>
|
|
168
|
+
|
|
169
|
+
## Actually want to cut your token bill?
|
|
170
|
+
|
|
171
|
+
Attention Span is here to make your agents' answers readable and easy to grasp at a glance. The lighter token bill on those answers is a welcome side effect. If cutting token spend is your actual goal, the bigger cost is the *work* your agent does, not how it talks, and two sister tools go right at it, pairing naturally with these styles:
|
|
172
|
+
|
|
173
|
+
<p align="center"><img src="assets/save-tokens.png" alt="The Outsourcerer wizard and the Attention Span cat vacuuming up ghost tokens with Token Optimizer" width="900"></p>
|
|
174
|
+
|
|
175
|
+
**[Token Optimizer](https://github.com/alexgreensh/token-optimizer)** tackles the three layers of token waste most tools never touch:
|
|
176
|
+
|
|
177
|
+
- **Structural**, e.g. bloated configs, unused skills, stale memory
|
|
178
|
+
- **Runtime**, e.g. verbose output, re-reads
|
|
179
|
+
- **Behavioral**, e.g. model misrouting, cache expiry, retry loops
|
|
180
|
+
|
|
181
|
+
...and more in each. On top of that it compresses your output stack, checkpoints and restores your work so your sessions stay continuous across compaction, and puts every token and dollar saved on a live dashboard. It's also the only tool that measures your context quality and adjusts to it, because a cheaper session that does worse work is no saving at all.
|
|
182
|
+
|
|
183
|
+
*Runs on Claude Code, Codex, OpenCode, OpenClaw, Hermes and Copilot.*
|
|
184
|
+
|
|
185
|
+
**[Outsourcerer](https://github.com/alexgreensh/outsourcerer)** — stay in one session of whatever agent you like best. In the background it:
|
|
186
|
+
|
|
187
|
+
- runs a squad across the models and harnesses you already pay for
|
|
188
|
+
- picks the best one per task **by benchmark, not just price**
|
|
189
|
+
- checks their work and minds your limits in every engine
|
|
190
|
+
|
|
191
|
+
You keep the cockpit; the grunt work happens elsewhere.
|
|
192
|
+
|
|
193
|
+
*Works across Claude Code, Codex, Antigravity, Devin, Droid, Cursor, Warp and Hermes.*
|
|
194
|
+
|
|
195
|
+
Attention Span trims how much Claude says. These two govern what your whole stack spends.
|
|
196
|
+
|
|
197
|
+
## Install
|
|
198
|
+
|
|
199
|
+
**Easiest: install the plugin.** One step gets all three styles, the `/style` switcher, and the
|
|
200
|
+
user-invoked skills (`/attention-kind`, `/spartan`, `/rundown`, `/tldr`). In Claude Code:
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
/plugin marketplace add alexgreensh/attention-span
|
|
204
|
+
/plugin install attention-span
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Then activate a style under `/config` → *Output style*, or just type a skill like `/attention-kind`
|
|
208
|
+
for one conversation. Prefer wiring it up by hand? The manual steps below still work and are unchanged.
|
|
209
|
+
|
|
210
|
+
**1.** Drop the style into your output-styles folder. Global (every project):
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
mkdir -p ~/.claude/output-styles
|
|
214
|
+
curl -o ~/.claude/output-styles/attention-kind.md \
|
|
215
|
+
https://raw.githubusercontent.com/alexgreensh/attention-span/main/output-styles/attention-kind.md
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Or put it in `.claude/output-styles/` inside a single project.
|
|
219
|
+
|
|
220
|
+
**2.** Set it as your default in `~/.claude/settings.json`. Do this once and it's on every session, forever:
|
|
221
|
+
|
|
222
|
+
```json
|
|
223
|
+
{ "outputStyle": "Attention-kind" }
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**3.** Restart or `/clear`. That's it.
|
|
227
|
+
|
|
228
|
+
**Rather not edit JSON?** Install the `/style` command and it does step 2 for you:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
mkdir -p ~/.claude/commands
|
|
232
|
+
curl -o ~/.claude/commands/style.md \
|
|
233
|
+
https://raw.githubusercontent.com/alexgreensh/attention-span/main/commands/style.md
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Then `/style` shows a popup of the styles you have installed. `/style spartan` sets one straight away. `/style default` puts the built-in style back.
|
|
237
|
+
|
|
238
|
+
It looks in `~/.claude/output-styles/` and in a project's `.claude/output-styles/`. A global style is written to `~/.claude/settings.json`. A project style is written to `.claude/settings.local.json`, so it stays out of your teammates' checkouts.
|
|
239
|
+
|
|
240
|
+
**Already have it installed?** The styles get updated. Check which version you're on and compare it to the [version badge](https://github.com/alexgreensh/attention-span/releases) above:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
grep attention-span ~/.claude/output-styles/*.md
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Behind? Re-run the install command in step 1 to overwrite with the latest.
|
|
247
|
+
|
|
248
|
+
Want to try it for one session first? Run `/config` and pick it under *Output style* instead, then set the default above once you're sold.
|
|
249
|
+
|
|
250
|
+
**Cost:** ~650 tokens, added once per session and cached after the first request. The benchmark measured ~43% shorter output, so the input cost is negligible after the first reply.
|
|
251
|
+
|
|
252
|
+
## Use in Claude chats (skills)
|
|
253
|
+
|
|
254
|
+
The styles also ship as **skills**, so they work in the Claude apps (claude.ai, desktop, mobile), not
|
|
255
|
+
just Claude Code. Install the plugin above, or add the skill files directly, then just type the command:
|
|
256
|
+
|
|
257
|
+
- `/attention-kind`, `/spartan`, or `/rundown` — talk in that style for the rest of the conversation.
|
|
258
|
+
- `/tldr` — compress a document, thread, transcript, or pasted text into a scannable briefing. (The
|
|
259
|
+
styles shape how Claude reports its *own* work; `/tldr` compresses something *someone else* wrote.)
|
|
260
|
+
|
|
261
|
+
The skills are **user-invoked only** (`disable-model-invocation`), so they cost zero passive context
|
|
262
|
+
until you call one, and they're generated from the same style sources (`scripts/gen-skills.py`), so they
|
|
263
|
+
never drift from the flagship wording.
|
|
264
|
+
|
|
265
|
+
## Use with other agents
|
|
266
|
+
|
|
267
|
+
The style body is plain markdown with no Claude-specific behavior. The only Claude-Code part is the YAML frontmatter at the top of each file (the `name`/`description` block the `/config` picker reads). Other agents ignore or choke on frontmatter, so the install strips it.
|
|
268
|
+
|
|
269
|
+
Each style file has a `<!-- body-start -->` marker after the frontmatter. The strip command is one `sed`:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
curl -sfL <raw-url> | sed '1,/<!-- body-start -->/d'
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
That gives you clean body markdown, ready to drop into any agent's rules or instructions file.
|
|
276
|
+
|
|
277
|
+
### Install per agent
|
|
278
|
+
|
|
279
|
+
**Devin** (global, via Windsurf compatibility):
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
mkdir -p ~/.codeium/windsurf/memories
|
|
283
|
+
curl -sfL https://raw.githubusercontent.com/alexgreensh/attention-span/main/output-styles/attention-kind.md -o /tmp/attention-span.md \
|
|
284
|
+
&& sed '1,/<!-- body-start -->/d' /tmp/attention-span.md > ~/.codeium/windsurf/memories/attention-kind.md
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Or project-level: `.windsurf/rules/attention-kind.md` in your repo root.
|
|
288
|
+
|
|
289
|
+
**Codex** (append to global `AGENTS.md`, idempotent via fenced markers):
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
mkdir -p ~/.codex
|
|
293
|
+
curl -sfL https://raw.githubusercontent.com/alexgreensh/attention-span/main/output-styles/attention-kind.md -o /tmp/attention-span.md \
|
|
294
|
+
&& { printf '\n<!-- attention-span:start -->\n'; sed '1,/<!-- body-start -->/d' /tmp/attention-span.md; printf '<!-- attention-span:end -->\n'; } >> ~/.codex/AGENTS.md
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
To update later, remove the old block first (in place), then re-run the install: `sed -i.bak '/<!-- attention-span:start -->/,/<!-- attention-span:end -->/d' ~/.codex/AGENTS.md`.
|
|
298
|
+
|
|
299
|
+
**Antigravity CLI (agy)** (project-level `GEMINI.md`, idempotent via fenced markers):
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
curl -sfL https://raw.githubusercontent.com/alexgreensh/attention-span/main/output-styles/attention-kind.md -o /tmp/attention-span.md \
|
|
303
|
+
&& { printf '\n<!-- attention-span:start -->\n'; sed '1,/<!-- body-start -->/d' /tmp/attention-span.md; printf '<!-- attention-span:end -->\n'; } >> GEMINI.md
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Run this in your repo root. agy discovers `GEMINI.md` (or `AGENTS.md`) by walking up from the current directory to the repo root, so the style applies to that project and all subdirectories.
|
|
307
|
+
|
|
308
|
+
To update later, remove the old block first (in place), then re-run the install: `sed -i.bak '/<!-- attention-span:start -->/,/<!-- attention-span:end -->/d' GEMINI.md`.
|
|
309
|
+
|
|
310
|
+
For a global install (all projects under your home directory), append to `~/GEMINI.md` instead, agy will find it on the walk-up from any project.
|
|
311
|
+
|
|
312
|
+
Swap `attention-kind.md` for `spartan.md` or `rundown.md` to install a different style. Same commands, different filename.
|
|
313
|
+
|
|
314
|
+
**Notes:**
|
|
315
|
+
|
|
316
|
+
- Devin loads rules via its Windsurf/Cursor compatibility layer, not a native rules directory. The `~/.codeium/windsurf/memories/` path is global; `.windsurf/rules/` is per-project.
|
|
317
|
+
- Codex appends to a shared `AGENTS.md`, so the fenced markers (`<!-- attention-span:start -->` / `<!-- attention-span:end -->`) let you update or remove the block without duplicates.
|
|
318
|
+
- Antigravity CLI (agy) discovers rules by walking up from cwd to repo root, loading any `GEMINI.md` or `AGENTS.md` it finds. No frontmatter support for standalone rules. Global install works by placing `GEMINI.md` in a parent directory (e.g. `~/`) that's always in the walk-up path.
|
|
319
|
+
- The body is ~650 tokens of input, loaded at the start of every session. Claude Code caches it after the first request; other agents may or may not cache (provider-dependent). The output savings (~43%) dwarf the input cost within a few replies either way.
|
|
320
|
+
- The `sed` strip assumes macOS/Linux. On Windows, use WSL or Git Bash.
|
|
321
|
+
|
|
322
|
+
## The styles
|
|
323
|
+
|
|
324
|
+
| Style | File | Best for |
|
|
325
|
+
|---|---|---|
|
|
326
|
+
| Attention-kind | [`output-styles/attention-kind.md`](output-styles/attention-kind.md) | ADHD, attention fatigue, anyone tired of walls of text |
|
|
327
|
+
| Spartan | [`output-styles/spartan.md`](output-styles/spartan.md) | Spartan mode: maximum signal, zero warmth, heads-down work |
|
|
328
|
+
| Rundown | [`output-styles/rundown.md`](output-styles/rundown.md) | Briefings, standups, progress updates (TL;DR + checkboxes) |
|
|
329
|
+
|
|
330
|
+
Each is one readable markdown file, easy to adapt.
|
|
331
|
+
|
|
332
|
+
## Notes
|
|
333
|
+
|
|
334
|
+
- Styles apply to the **main conversation only**. Subagents run their own prompt.
|
|
335
|
+
- These keep Claude's coding behavior intact (`keep-coding-instructions: true`).
|
|
336
|
+
|
|
337
|
+
## License
|
|
338
|
+
|
|
339
|
+
AGPL-3.0. See [LICENSE](LICENSE).
|