{
  "gate": {
    "name": "gate-discipline",
    "trigger": {
      "en": "Before commit, PR, or merge.",
      "pt": "Antes de commit, PR ou merge."
    },
    "lesson": {
      "en": "Run canonical gates separately, inspect exit codes, distrust convenient cache hits, and prove generated code is current.",
      "pt": "Rode gates separadamente, leia exit codes, desconfie de cache conveniente e prove que código gerado está atual."
    },
    "example": "pnpm lint; echo \"lint=$?\"",
    "path": ".agents/skills/gate-discipline/SKILL.md"
  },
  "parallel": {
    "name": "parallel-agents",
    "trigger": {
      "en": "When independent tasks can run concurrently.",
      "pt": "Quando tarefas independentes podem rodar juntas."
    },
    "lesson": {
      "en": "One worktree and file ownership per task; prior-art scout first, verifier last, merge sequentially.",
      "pt": "Um worktree e ownership por tarefa; prior-art scout primeiro, verifier por último, merges sequenciais."
    },
    "example": "git worktree add .claude/worktrees/task -b feat/task",
    "path": ".agents/skills/parallel-agents/SKILL.md"
  },
  "repo": {
    "name": "repo-db",
    "trigger": {
      "en": "At task start and before debugging.",
      "pt": "No início da tarefa e antes de diagnosticar."
    },
    "lesson": {
      "en": "Query the repo map, canonical commands, and known-issues ledger before crawling thousands of files.",
      "pt": "Consulte mapa, comandos canônicos e known-issues antes de vasculhar milhares de arquivos."
    },
    "example": "jq -r '.verify[]' .agents/db/commands.json",
    "path": ".agents/skills/repo-db/SKILL.md"
  },
  "debt": {
    "name": "tech-debt",
    "trigger": {
      "en": "When unrelated debt appears mid-task.",
      "pt": "Quando dívida não relacionada aparece no meio."
    },
    "lesson": {
      "en": "Do not smuggle cleanup into a feature. Record it, give it its own branch, and finish the underlying condition.",
      "pt": "Não esconda limpeza em uma feature. Registre, dê uma branch própria e finalize a condição original."
    },
    "example": "feature diff ≠ debt cleanup",
    "path": ".agents/skills/tech-debt/SKILL.md"
  },
  "writer": {
    "name": "skill-writer",
    "trigger": {
      "en": "When a workflow is explained twice.",
      "pt": "Quando um fluxo é explicado duas vezes."
    },
    "lesson": {
      "en": "Procedures become skills; isolated facts become known-issues entries. Keep the body short and the trigger discriminating.",
      "pt": "Procedimentos viram skills; fatos isolados viram known-issues. Corpo curto e gatilho discriminante."
    },
    "example": ".agents/skills/<name>/SKILL.md",
    "path": ".agents/skills/skill-writer/SKILL.md"
  },
  "area": {
    "name": "frontend / go-api",
    "trigger": {
      "en": "When changing the matching subsystem.",
      "pt": "Ao alterar o subsistema correspondente."
    },
    "lesson": {
      "en": "Encode version-specific traps close to the work: Next/React/AntD boundaries, Connect APIs, sqlc types, migrations, and code generation.",
      "pt": "Codifique armadilhas de versão perto do trabalho: Next/React/AntD, APIs Connect, tipos sqlc, migrations e codegen."
    },
    "example": "area → local skill → canonical checks",
    "path": ".agents/skills/"
  }
}
