Checklists: closure gating review, round two
What changed between the feat/template-level-checklist-gating branch as
written and what was committed, and why. Companion to the round-one
house style page, which now links to it.
Checklists & SOPs: a developer guide, and what changed on the way in
Two pages for FreeITSM's first community-contributed module (PR #141, Santhosh
Srinivasan).
Checklists-and-SOPs-Developer-Guide — how it works. The data model and why the
template/instance split is right, the three attachment routes, the relevance
scoring, attribution and the audit trail, the closure rule and where it lives.
Checklists-Module-House-Style — what changed between the PR as contributed and
what shipped, with the code side by side and the reason for each change.
Written for Sandy and for whoever contributes the next module, because none of
FreeITSM's conventions are discoverable from outside.
That second page leads with what was RIGHT, and means it: the template/instance
split is better than the equivalent decision elsewhere in the product, every
query is a prepared statement across 2,834 lines, and the proposal argued about
why Knowledge and Tasks did not fit before a line was written. The list of
changes that follows is long because there are a lot of conventions, not
because the work was poor.
The two most useful sections are the two bugs of the same shape - a COALESCE
fallback to a column that never existed, and a URL that only resolves at the
web root. Both were correct on the machine they were written on and nowhere
else, which is the thing worth teaching. There is also a section on how the
review was actually carried out, including three of its own findings that were
wrong before they were right.
Sidebar: both under Tickets, since that is where an analyst meets the feature.
⬜ Still owed: an administrator-facing Checklists page. Noted in the guide
rather than linked to nothing.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>