Tickety
TT / TT-10 Initial MVP
TT-47 Ready for development

Every guest has a seat

domain rules Highest · 3 points · Rachel Okonjo

A plan with all seventy guests unseated says it can be published, and it is right to. Publication is the hard violation count reaching zero, an empty plan breaks no hard rule, so it publishes.

The code does what the specification says. The specification does not yet say the thing everyone assumes it says: that a plan is not finished while somebody has nowhere to sit.

Of the two figures on that screen this is the dangerous one. A score reading three-quarters on an empty plan is embarrassing. A line saying it may go out is how forty people end up standing.

The rule

A new hard rule on KB-2, registered like any other, so it lands in its own file, appears in the violations panel by name and needs no edit to the scoring code.

It is scoped, and the scope is not optional. KB-1 says a room with fewer seats than guests is short, and that short is a warning and never a block. An unscoped rule would make every short room unpublishable and contradict it, which is the same trap TT-45 had to be scoped out of.

A guest without a seat is a violation while a seat is free. A room with fewer seats than guests is short rather than in violation.

Acceptance criteria

  • KB-2 carries the rule in its hard constraints table, with that scope, as part of this ticket
  • A guest with no seat is a violation wherever the room still has an empty seat
  • A room with fewer seats than guests raises nothing, however many are left standing
  • The violations panel names it, and it reads as hard
  • A plan with anybody unseated and a seat free cannot be published
  • Auto-allocate already seats everyone it can, so it should clear this rule wherever seats allow. Where seats ran out it reports that, as it does now, and the rule stays quiet

Notes

This alone takes the empty plan from "can be published" to "cannot", and its score from 75% to somewhere in the forties. TT-48 is what takes the figure the rest of the way.

Neither ticket resolves this on its own. This one fixes the line that matters; that one fixes the number. They want to land together.

Linked pages

Comments

No comments on this issue