Why templates exist
Without a template, a checklist is just free text typed directly into a custom field. That works for a one-off list, but it breaks down the moment you need the same review criteria applied consistently across dozens or hundreds of objects — which is exactly the situation in regulated environments where Definition of Done (DoD) and Definition of Ready (DoR) gates must be identical across a whole project or product line. Templates solve two distinct problems at once:- Consistency — every work item of a given type gets the same checklist items, in the same order, with the same mandatory items flagged.
- Central maintenance — when the process changes (a new mandatory review step is added, for example), you edit the template once, and, depending on how the template is applied, that change can propagate outward instead of requiring you to hunt down and edit every individual work item.
Two ways templates are defined
The gathered context describes two distinct mechanisms for supplying a template, and they behave differently enough that mixing them up is a common source of confusion.1. Configuration-property templates
The first — and generally preferred — approach points a checklist at a template work item (or template document) purely through a configuration property:_TYPEID_ is the work item type (for example requirement) and _FIELDID_ is the checklist ID — the ID of the custom field that holds the checklist (for example chkApproved). Both parts of the key are optional, which is what makes this mechanism hierarchical: you can scope a template narrowly to one type and one checklist, or broadly to any checklist of any type. This precedence behavior is covered in depth in Configuration Property Hierarchy — templates are simply one property that follows that same resolution pattern.
For documents (LiveDocs), the equivalent property points at a document path instead of a work item ID:
2. Polarion built-in work item templates
The second approach uses Polarion’s own built-in work item templating (create a work item titled something like “TEMPLATE”, mark it resolved so it disappears from default views, and reference it from theworkitem-type-enum). This piggybacks on a platform feature that predates the checklist product.
The merge model: how a template’s items reach a work item
Understanding how a template’s items combine with an object’s own checklist field explains a lot of behavior that otherwise looks surprising. When a checklist is parsed, template items are merged into the object’s existing items using an ID-based match:- If an item ID from the template does not already exist on the object, it’s added as a new item (marked as originating from the template).
- If an item ID does already exist, only its result is carried over from the stored content — its label, mandatory flag, and description are refreshed from the template. In other words, the template stays authoritative for the shape of each item (its wording and whether it’s mandatory), while the reviewer’s recorded result (checked / rejected / conditional / empty) is preserved.
Changing an item’s mandatory flag reaches existing objectsBecause label, mandatory flag, and description are always taken from the template on merge, changing whether an existing template item is mandatory (or editing its wording) does reach in-flight objects — the change is picked up the next time each object’s checklist is parsed. Only the recorded result stays with the object. This applies to already-existing items, not just newly-added ones.
Item-level template metadata: fromTemplate
Each checklist item internally tracks whether it originated from a template (as opposed to being added manually to that specific object). This distinction matters conceptually even where the UI doesn’t surface it directly to end users: a template-sourced item represents a process requirement handed down from a governing definition, while a manually-added item represents something a specific reviewer decided to track locally. Documentation and process design should treat these as different categories of checklist content — one is centrally governed, the other is ad hoc.
Object types that can carry a template
Template resolution is supported for all four object types that Checklist can attach to:
Test runs and plans resolve their template from the object’s native “template” relationship rather than from a configuration property pointing at an arbitrary object — a subtle but important distinction from the work item and document cases.
Multiple templates for the same checklist
By default, the system picks a template based on the work item or document type alone. But the resolution can be made conditional on the value of another field — a control field — so that, for example, arequirementReady checklist loads a different template depending on whether a requirementType custom field is set to system or software:
nextedy.checklist.document._CHECKLISTID_.controlField.
Common misconceptions
Where templates fit in the bigger picture
Templates are one of three pillars that make checklist enforcement possible in a regulated process: the template defines what must be checked, workflow gates enforce that it is checked before a transition is allowed, and baselines preserve historical proof of what was checked at a point in time. Templates answer the “what should this checklist contain” question; they say nothing on their own about whether completing it is required to proceed — that’s the workflow gate’s job.Related guides
Sources
Sources
KB Articles
- How to create checklist template?
- Checklist workflow functions and conditions
- Multiple templates per one work item/document type
proc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/ChecklistItem.javaproc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/Checklist.javaproc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/internal/ChecklistFormExtension.javaproc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/ChecklistProduct.javaproc-checklist-src/com.nextedy.polarion.checklist/src/com/nextedy/polarion/checklist/internal/ChecklistAdminService.java