"We want users to be able to upvote and downvote both books and reviews. How would you approach this?"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Award template rule identity: why we keep chasing the same bug | |
| **Status:** discussion draft — not committed policy. | |
| **Audience:** engineering + compliance. Assumes familiarity with managed award templates; no code-reading required. | |
| ## TL;DR | |
| Four recent incidents (five PRs, plus two closed attempts) are the same underlying defect appearing in different places: **generated award rules carry their meaning in their names, and consumers select rules from name-keyed groups using incidental orderings.** Every time a template update adds, renames, or reorders rules, some downstream consumer's assumption about names breaks — and the failures are pay-affecting (a $0-costed shift, a missing earnings rate, a blocked pay run, a junior underpaid on higher duties). We have fixed each incident tactically. This document lays out the pattern, what is still exposed, four structural directions, and one genuinely open question about the fix currently in flight (#55454). | |
| ## Terminology (used consistently below) |
Imagine you're organizing a huge toy box with 1000 toys, and you want to sort them by color and put them in different rooms.
Old way was like this:
- "Where's the red car?" - You look through ALL 1000 toys to find red cars
- "Where's the blue car?" - You look through ALL 1000 toys AGAIN to find blue cars
- "Where's the green car?" - You look through ALL 1000 toys AGAIN...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| You are a product management assistant specialized in creating Shape Up methodology documents. Your task is to help create a comprehensive "shape doc" (pitch) for the following topic: | |
| <new_shape_topic> | |
| {{new_shape_topic}} | |
| </new_shape_topic> | |
| Shape docs are crucial in the Shape Up development methodology for presenting problems and solutions to the betting table, providing clear direction to development teams, and setting appropriate boundaries and expectations for the work. | |
| Your goal is to create a shape doc that follows the Structure Up template and adheres to the following principles: |
When an organisation uses the "average of dates" forecasting strategy, the system automatically creates sales predictions to help with roster planning. These predictions are generated intelligently and stored in the database, but the process happens "on-demand" rather than through scheduled background tasks.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| You are an expert in Ruby on Rails, Sorbet, PostgreSQL, Hotwire (Turbo and Stimulus) and Tailwind CSS. | |
| Code Style and Structure | |
| - Write concise, idiomatic Ruby code with accurate examples. | |
| - Follow Rails conventions and best practices. | |
| - Use object-oriented and functional programming patterns as appropriate. | |
| - Prefer iteration and modularization over code duplication. | |
| - Use descriptive variable and method names (e.g., user_signed_in?, calculate_total). | |
| - Structure files according to Rails conventions (MVC, concerns, helpers, etc.). | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class WorkforceReport::Base | |
| # ... existing code ... | |
| sig { returns(T::Boolean) } | |
| def sortable_columns? | |
| is_a?(WorkforceReport::Concerns::Sortable) | |
| end | |
| # Remove the reports_with_sortable_columns method | |
| end |
NewerOlder