No per-person performance metric — anywhere, for anyone
Guru has no throughput, completion-rate, on-time-percentage or speed figure for any individual, in any route. Not hidden behind a role check — not written. The one place a reader might expect one, the workload view, is built from estimated minutes on open tasks and states its own limits in the response: 'Guru holds no record of how anyone spent their time, and reports no per-person speed or completion rate.'
Workload is ordered by name, never by load
Rows in the workload view come back sorted by user id alphabetically — there is no sort on assigned minutes or overload anywhere in the function. Sorting people by who has most is the difference between a capacity view and a ranking of people, and the mainstream project tools this competes with ship exactly that ranking, several as a red/green occupancy heatmap of named staff.
Nothing is tracked that the team did not type in
Every task's free-form fields and every approval's detail payload are scanned for keys that look like passive surveillance — keystrokes, screen time, idle time, mouse movement, GPS or location — and refused with a 403 that redirects to the honest alternative: set an estimate the assignee can see and agreed to.
No approval resolves itself, and nobody signs off their own personnel request
A reminder for an overdue approval nudges — there is no auto-approve-after column and no default decision anywhere in the schema. Separately, an actor cannot approve their own hiring, firing, pay-change or promotion request, and no non-human actor (a bot, a cron job, 'system') can decide any approval at all — a decision needs a named person.
The client portal never fetches what it does not show
A client link's projection function is only ever handed the project and the client-visible tasks — it has no path to a comment, an assignee, an estimate or another project. That is stronger than filtering a response: there is no step where the wrong data was in memory and then removed.