Use when: review an academic paper with a structured review form and multiple reviewer personas.
Use when: design a clear, consistent, and evolvable API contract before implementing it.
Use when: record a significant technical decision, its context, and consequences as an ADR.
Use when: implement or review authentication flows, sessions, tokens, and password handling securely.
Use when: design or review access control so users can only do what they are permitted to do.
Use when: write or review robust shell scripts that fail fast and handle paths and input safely.
Use when: explore options or decompose an ambiguous problem before committing to one approach.
Use when: add caching with the right layer, key design, invalidation, and consistency trade-offs.