Skip to content

feat(sse): add i-have-adhd output style to compression catalog - #10271

Merged
diegosouzapw merged 4 commits into
release/v3.8.50from
feat/i-have-adhd-output-style
Aug 14, 2026
Merged

feat(sse): add i-have-adhd output style to compression catalog#10271
diegosouzapw merged 4 commits into
release/v3.8.50from
feat/i-have-adhd-output-style

Conversation

@diegosouzapw

Copy link
Copy Markdown
Owner

O que

Adiciona o output style i-have-adhd (action-first) como 5ª entrada do OUTPUT_STYLE_CATALOG — port da skill github.com/ayghri/i-have-adhd (MIT), no mesmo molde da integração do ponytail. Níveis lite/full/ultra em en + pt-BR, SHARED_BOUNDARIES preservado em todos os níveis.

Por que

Nova opção de compressão de saída: respostas action-first (comando/path primeiro), passos numerados, zero preâmbulo/recap/closer → menos tokens de saída, leitura acionável.

Escopo

  • open-sse/services/compression/outputStyles/catalog.ts — 1 entrada nova (D-A1: injetor/UI/Zod/telemetria enumeram o catálogo; nada mais muda)
  • tests/unit/compression/i-have-adhd-catalog.test.ts — teste dedicado (espelho do ponytail-catalog.test.ts)

Testes

  • node --import tsx/esm --test tests/unit/compression/i-have-adhd-catalog.test.ts — 7 novos, TDD (falhou antes da entrada, passou depois)
  • node --import tsx/esm --test tests/unit/compression/ — suíte-irmã verde
  • tests/unit/ui/compressionStylesPanel.test.tsx — painel enumera o novo estilo sem edição
  • npm run lint, npm run typecheck:core, npm run check:compression-budget verdes

Spec: _tasks/superpowers/specs/2026-08-13-i-have-adhd-output-style-design.md (repo _tasks)

⚠️ base-red inherited: #9985

@diegosouzapw

Copy link
Copy Markdown
Owner Author

Babysit — discriminação dos reds (iteração 1)

Veredito: 100% dos reds são herdados da base (release/v3.8.50 @ 266e39d36d, red — #9985). O diff do PR (2 arquivos: 1 entrada no catálogo de output styles + 1 teste novo) não causa nenhum dos checks vermelhos. Nenhum fix foi commitado nesta branch — base-red não se conserta em branch de feature.

Check vermelho Causa provada Evidência
Fast Production Build · Build (advisory) · dast-smoke (Build CLI bundle) open-sse/utils/stream.ts: import duplicado de sseCommentsEnabled (linhas 31 e 77) → TS2300 + Turbopack "Ecmascript file had an error". Clobber de merge do #9378 Arquivo byte-idêntico entre PR e base (git diff origin/release/v3.8.50 -- open-sse/utils/stream.ts vazio); duplicata presente no tip puro (git show origin/release/v3.8.50:...)
Fast Quality Gates 3 gates: open-sse-typecheck (mesmo TS2300 do stream.ts), dead-code (drift de ratchet 409>248, listado no #9985), mutation-test-coverage (falta tests/unit/guardrails/visionBridge-responses-9597.test.ts no stryker.conf.json tap.testFiles — teste veio do #10202 na base) Gate reproduzido localmente; teste flagado existe na base (dc185e5aab)
No new ESLint warnings Suppressions obsoletas ("suppressions left that do not occur anymore") — o diff do PR só ADICIONA código, não pode tornar suppression obsoleta Log do job + natureza do diff
Merge integrity (changelog + generated skills) check:agent-skills-sync: SKILL.md gerado de omni-settings fora de sync com o catálogo — PR não toca skills Log do job ("GENERATED: + omni-settings")
Unit Tests fast-path (2/4, 3/4, 4/4) Falhas em combo/priority retry, i18n denoRelayOrgDomainHint UNCLOSED_TAG, poolside catalog, signal-abort — nenhuma referencia output styles/catálogo Nenhum dos arquivos falhos importa o catálogo; shard 1 (que contém os testes de compression) está verde

Verdes relevantes do PR: Docs Gates, Vitest, Unit shard 1/4, CodeQL, semgrep, Change Classification.

Caminho para o verde: corrigir a base via PR dedicado fix/release-v3.8.50-basereds (import duplicado no stream.ts + prune de suppressions + regen do omni-settings SKILL.md + testFiles do stryker) e, com a base verde, um merge da base neste PR (synchronize) reroda o CI. Sem mudança de código necessária aqui.

@diegosouzapw

Copy link
Copy Markdown
Owner Author

Babysit — iteração 2 (refresh contra a base nova)

Base mergeada (266e39d36d27e163e2c9, 11 commits) e CI re-rodado. De 9 checks vermelhos para 3, e o diff do PR continua sendo os mesmos 2 arquivos (100 inserções). Os 3 restantes são todos da base:

Red Causa Prova Ação
Fast Quality Gates → open-sse-typecheck src/app/api/v1/models/catalog.ts:1362-1363 TS2551: outputTokenLimit não existe em CustomModelEntry — o DB persiste o campo (src/lib/db/models.ts:142) mas a interface (catalogHelpers.ts:12) não o declara Arquivo byte-idêntico ao tip (git diff origin/release/v3.8.50 HEAD -- src/app/api/v1/models/catalog.ts = 0 linhas); erro reproduzido localmente Fix já em voo em #10339 — nada a fazer aqui
Unit Tests fast-path (3/4) tests/unit/models-catalog-route.test.ts — mesma causa-raiz do item acima mesmo arquivo, mesmo commit de origem idem #10339
Fast Quality Gates → dead-code Drift de ratchet (409 > baseline 248) listado como não-bloqueante no #9985 rebaseline na release, por política
Unit Tests fast-path (4/4) Hang de 2h26m em "Batch API and Processing" (8643537ms para um teste) — tempo absurdo indica travamento de runner, não assertion duração vs. ~8min normal do shard re-run disparado agora

Verdes: Docs Gates, Vitest, Unit 1/4 e 2/4, Fast Production Build, dast-smoke, CodeQL, semgrep, Merge integrity, No new ESLint warnings — todos os que estavam vermelhos por causa do stream.ts da base voltaram sozinhos com o refresh.

Nenhum commit de correção foi necessário nesta branch. Próximo passo: quando #10339 mergear, um novo refresh deve limpar os 2 reds restantes.

@diegosouzapw

Copy link
Copy Markdown
Owner Author

Atualização do shard 4/4: não é flake — é hang da base, reproduzido localmente (exit=124 em 240s com o arquivo byte-idêntico ao tip) e presente também no #10339. Causa-raiz rastreada até upstreamTimeouts.ts:117 (#10256): o TypeError de contrato vira 502 → retry infinito. Aberta a issue #10360 com a análise. Este PR segue sem defeito próprio — os 3 reds restantes são base-reds (#10339 cobre 2, #10360 cobre o terceiro).

@diegosouzapw
diegosouzapw merged commit 964a3fe into release/v3.8.50 Aug 14, 2026
11 checks passed
@diegosouzapw
diegosouzapw deleted the feat/i-have-adhd-output-style branch August 14, 2026 14:59
diegosouzapw added a commit that referenced this pull request Aug 15, 2026
… language matrix (#10425)

i-have-adhd shipped in #10271 with en + pt-BR only; it now covers vi/ja/id as well,
matching ponytail. Every level keeps the SHARED_BOUNDARIES clause.

Adds a per-MATRIX guard (output-styles-i18n-matrix.test.ts). Every existing test is
per-style, which is how less-code stayed English-only since the 9router port without
anyone noticing. The guard fails on: a new style without pt-BR, a style losing a
translation it had, a translation missing an intensity level, a translation that dropped
the boundaries clause, and a stale KNOWN_ENGLISH_ONLY entry.

Proven by mutation, not just by passing: dropping less-code from the allowlist and
renaming the vi key both turned it red with the expected messages.

less-code stays English-only as declared debt (KNOWN_ENGLISH_ONLY + comment); the
remaining coverage work is tracked in #10426.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants