
Publisher on askill
Use when writing Rails models - enforces state-as-records not booleans, concerns as adjectives namespaced under model, invocation ordering, and private indentation
Use when identifying where user mental models diverge from system reality, where moments of truth occur, and where information scent misleads — finds the structural causes of confusion
Use when refactoring fat Rails models with repetitive prefixes like entropy_*, notification_*, or multi-association coordination. Extracts PORO wrappers that group operations around nouns/concepts.
Use when writing Ruby/Rails code - enforces expanded conditionals over guard clauses, private indentation, invocation-order methods, and bang method restrictions that contradict standard Ruby guides
Use when designing content systems where 5+ distinct types need to comingle in feeds, timelines, or searches with shared metadata and operations - NOT for simple polymorphic associations or 1-3 simila...
Use when defining who the actors in a service are — segments, JTBD forces, context, constraints, and relationships between actors
Use when designing database schema, writing migrations, or making data storage decisions - enforces UUIDs, account_id multi-tenancy, no foreign keys, and proper index patterns
Use when defining Rails routes, organizing controller directories, or adding resources - enforces resource extraction, shallow nesting, resolve helpers, and module scoping
Use when mapping what a user experiences over time — actions, thoughts, emotions, touchpoints across pre-service, during-service, and post-service stages
Use when writing background jobs or async operations - enforces thin job wrappers (3-5 lines) that delegate to models using _later/_now naming pattern
Use when you have new source material (transcripts, interviews, support logs, docs, code changes) and want to reason about what existing service design artifacts need updating
Use when identifying bottlenecks, waste, and failure modes in a service — designs PDSA improvement experiments with lane-anchored measures
Use when writing Rails controllers or implementing state changes - enforces resource extraction, thin controllers delegating to models, params.expect, and controller concerns for scoping
Use when naming classes, methods, routes in vanilla Rails codebases - enforces concern adjectives (-able/-ible only), no bangs for state, resource naming cascade, and commit message format
Use when starting or continuing service design analysis for a project — checks what artifacts exist, identifies gaps, recommends which analytical skill to run next