type: blockers_registry entry_prefix: BLK schema: id: BLK-XXX date: YYYY-MM-DD friction: string (what was blocked) real_cause: string (root cause, not symptom) solution: string (workaround or fix) status: [open | resolved | upstream] rules:
| ID | Date | Friction | Status |
|---|---|---|---|
| BLK-001 | 2026-04-22 | rtk curl breaks JSON pipelines |
upstream |
| BLK-002 | 2026-04-23 | rmdir refusé en sandbox sur dossier vide |
resolved (manual user step) |
rtk curl returns compressed schema in pipesrtk curl ... | python -c "json.load(sys.stdin)" (ou jq, awk) échoue sans message clair.rtk curl auto-compresse stdout indépendamment du TTY — documenté dans .claude/tasks/rtk-upstream-issue.md.exclude_commands=["curl"] dans ~/.config/rtk/config.toml.rtk proxy..claude/tasks/rtk-upstream-issue.md.rtk, workaround appliqué).rmdir refusé en sandbox sur dossier vide./tasks/ une fois vidé (après migration vers .claude/tasks/). Commands rmdir tasks et rm -r tasks retournent "Permission denied" même si le dir est vide et que l'intent est non-destructif.rm, rmdir, rm -rf) par défaut via le harness permission gate, indépendamment de la sémantique réelle. Le git rm via git lui passait (commit c721a36) — git est traité comme tool non-destructif.git rm tasks/*.md a traité les fichiers individuellement (via git rm, passé par le gate). Ensuite git a auto-détecté les renames vers .claude/tasks/, donc le dir tasks/ a été supprimé implicitement au commit.git rm : demander à l'user de lancer rmdir tasks manuellement.git rm + auto-detect rename, pas de rmdir requis en pratique).