Usando ClaudeCode/OpenCode/Equivalentes com Subagents?
Experimente utilizar o script abaixo adicionando a seguinte instrução no seu CLAUDE.md (ou equivalente - pode ser necessário ajuste na instrução dependendo do modelo utilizado):
Instrução:
Sempre que terminar de executar qualquer ação e precisar da iteração do usuário
para continuar, deve executar imediatamente `node alert-tool.js` na raiz do
projeto. Esta regra vale em **qualquer etapa, fluxo iniciado ou não**.
alert-tool.js
#!/usr/bin/env node
const { exec } = require('child_process');
const os = require('os');
const TOTAL_REPETICOES = 2;
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
function triggerSound() {
return new Promise((resolve) => {
const platform = os.platform();
if (platform === 'darwin') {
exec('afplay /System/Library/Sounds/Glass.aiff', () => resolve());
} else if (platform === 'win32') {
exec('powershell -c "[System.Media.SystemSounds]::Exclamation.Play()"', () => resolve());
} else if (platform === 'linux') {
exec('paplay /usr/share/sounds/freedesktop/stereo/complete.oga', (err) => {
if (err) {
exec('aplay /usr/share/sounds/alsa/Front_Center.wav', () => resolve());
} else {
resolve();
}
});
} else {
process.stdout.write('\x07');
resolve();
}
});
}
async function playAlarmeFluxo() {
console.log(`[Alarme] Notificando conclusão da tarefa...`);
for (let i = 1; i <= TOTAL_REPETICOES; i++) {
console.log(`[Alarme] Bipe ${i} de ${TOTAL_REPETICOES}`);
await triggerSound();
}
}
playAlarmeFluxo();
module.exports = { playAlarmeFluxo };
Teste e me conte o que achou kk