template
Read ../idmp-shared/SKILL.md first.
Before any write: Follow the 🛑 Destructive op confirmation protocol. Read-only commands stay read-only here, but delete / write / patch flows still require the shared yes-gate.
Recommended shortcuts
| Shortcut |
Purpose |
+list |
List element templates. |
+get |
Read one element template in detail. |
+attributes |
Read attribute templates under one element template. |
+levels |
Inspect available levels for path-style templates. |
+keywords |
Read naming keyword guidance for the template family. |
Recommended reference
Missing context to resolve first
| Context |
Why it must be resolved before template-side create work |
| Final template owner |
You need the exact elementTemplateId before you can read attributes, sub-templates, trigger types, or create-safe names. |
| Trigger scope |
Decide applyOnSelf and whether a child template must be selected before you reuse trigger-type results. |
| Candidate analysis name |
analysis-template.analyses.new-name requires a proposed name. |
| Template output plan |
Decide whether template attributes are reused or created fresh and which valueType they should carry. |
Constrained live behaviors
- Do not mix template commands with live element commands; template mode and element mode use different owners and endpoints.
- If
applyOnSelf=false, reread sub-templates first and then refresh trigger types with the chosen child template scope.
analysis-template.analyses.new-name requires a candidate name and --ack-risk; attr-template attributes new-name only needs the owner scope.
attr-template attributes new-name does not require --ack-risk; reserve the name first, then use the later write path for the actual risk gate.
- If the task must create a live analysis or alert under a real element, switch back to the element-mode workflows rather than forcing template endpoints.
Evidence of completion
- A template lookup is only complete when the reread shows the intended
elementTemplateId, keyword family, or trigger scope.
- A template-side name reservation is only complete when the later create path keeps the same suggested name.
- A child-scope decision is only complete when
sub-templates and the final trigger-type reread still agree on the same template branch.
Template-mode rules
- Use template commands only; do not substitute live element commands.
- Read attribute templates, sub-templates, and trigger types before building template-side analysis or attribute changes.
- Trigger type choices change when
applyOnSelf changes.
- Use
new-name before creating template attributes or template analyses.
Key commands
idmp-cli schema template.elements.list
idmp-cli template elements list --params '{"current":1,"size":20}'
idmp-cli schema template.elements.get
idmp-cli template elements get --params '{"elementTemplateId":123}'
idmp-cli schema attr-template.elements.attributes
idmp-cli attr-template elements attributes --params '{"elementTemplateId":123}'
idmp-cli schema template.elements.sub-templates
idmp-cli template elements sub-templates --params '{"elementTemplateId":123}'
idmp-cli analysis-template trigger-types list --params '{"elementTemplateId":123,"applyOnSelf":false}'
idmp-cli analysis-template analyses new-name --ack-risk --params '{"elementTemplateId":123,"name":"demo-analysis"}'
idmp-cli attr-template attributes new-name --params '{"elementTemplateId":123}'
Exception and failure handling
- If you only have an
elementId, verify that the task is not really live element work before switching to template mode.
- If
sub-templates is empty, child-scope analysis options are not available for that template.
- If
applyOnSelf changes, re-read trigger types before reusing an earlier choice.
- If
new-name suggests a different value, use the suggested name instead of forcing a duplicate.
- If a template is missing, renamed, or access is denied, refresh the list and session before attempting template writes.
Validation scenarios
- List available templates with
idmp-cli schema template.elements.list and idmp-cli template elements list --params '{"current":1,"size":20}'.
- Read one template with
idmp-cli schema template.elements.get and idmp-cli template elements get --params '{"elementTemplateId":123}'.
- Read template attributes with
idmp-cli attr-template elements attributes --params '{"elementTemplateId":123}'.
- Check child-scope analysis readiness with
idmp-cli template elements sub-templates --params '{"elementTemplateId":123}' and idmp-cli analysis-template trigger-types list --params '{"elementTemplateId":123,"applyOnSelf":false}'.
- Reserve create-safe names with
idmp-cli analysis-template analyses new-name --ack-risk --params '{"elementTemplateId":123,"name":"demo-analysis"}' and idmp-cli attr-template attributes new-name --params '{"elementTemplateId":123}'.
1---2name: idmp-template3description: IDMP template skill for reading element templates, template attributes, sub-templates, trigger types, and create-safe names without mixing template mode with live element mode.4---56# template78**Read [`../idmp-shared/SKILL.md`](../idmp-shared/SKILL.md) first.**910**Before any write:** Follow the [🛑 Destructive op confirmation protocol](../idmp-shared/SKILL.md#-destructive-op-confirmation-mandatory). Read-only commands stay read-only here, but delete / write / patch flows still require the shared yes-gate.111213## Recommended shortcuts1415| Shortcut | Purpose |16|----------|---------|17| `+list` | List element templates. |18| `+get` | Read one element template in detail. |19| `+attributes` | Read attribute templates under one element template. |20| `+levels` | Inspect available levels for path-style templates. |21| `+keywords` | Read naming keyword guidance for the template family. |2223## Recommended reference2425- [`template read flows`](references/template-read-flows.md)26- [`../idmp-workflow-analysis-create/SKILL.md`](../idmp-workflow-analysis-create/SKILL.md)2728## Missing context to resolve first2930| Context | Why it must be resolved before template-side create work |31| --- | --- |32| Final template owner | You need the exact `elementTemplateId` before you can read attributes, sub-templates, trigger types, or create-safe names. |33| Trigger scope | Decide `applyOnSelf` and whether a child template must be selected before you reuse trigger-type results. |34| Candidate analysis name | `analysis-template.analyses.new-name` requires a proposed `name`. |35| Template output plan | Decide whether template attributes are reused or created fresh and which `valueType` they should carry. |3637## Constrained live behaviors3839- Do not mix template commands with live element commands; template mode and element mode use different owners and endpoints.40- If `applyOnSelf=false`, reread `sub-templates` first and then refresh trigger types with the chosen child template scope.41- `analysis-template.analyses.new-name` requires a candidate `name` and `--ack-risk`; `attr-template attributes new-name` only needs the owner scope.42- `attr-template attributes new-name` does not require `--ack-risk`; reserve the name first, then use the later write path for the actual risk gate.43- If the task must create a live analysis or alert under a real element, switch back to the element-mode workflows rather than forcing template endpoints.4445## Evidence of completion4647- A template lookup is only complete when the reread shows the intended `elementTemplateId`, keyword family, or trigger scope.48- A template-side name reservation is only complete when the later create path keeps the same suggested name.49- A child-scope decision is only complete when `sub-templates` and the final trigger-type reread still agree on the same template branch.5051## Template-mode rules5253- Use template commands only; do not substitute live element commands.54- Read attribute templates, sub-templates, and trigger types before building template-side analysis or attribute changes.55- Trigger type choices change when `applyOnSelf` changes.56- Use `new-name` before creating template attributes or template analyses.5758## Key commands5960```bash61idmp-cli schema template.elements.list62idmp-cli template elements list --params '{"current":1,"size":20}'6364idmp-cli schema template.elements.get65idmp-cli template elements get --params '{"elementTemplateId":123}'6667idmp-cli schema attr-template.elements.attributes68idmp-cli attr-template elements attributes --params '{"elementTemplateId":123}'6970idmp-cli schema template.elements.sub-templates71idmp-cli template elements sub-templates --params '{"elementTemplateId":123}'7273idmp-cli analysis-template trigger-types list --params '{"elementTemplateId":123,"applyOnSelf":false}'74idmp-cli analysis-template analyses new-name --ack-risk --params '{"elementTemplateId":123,"name":"demo-analysis"}'75idmp-cli attr-template attributes new-name --params '{"elementTemplateId":123}'76```7778## Exception and failure handling7980- If you only have an `elementId`, verify that the task is not really live element work before switching to template mode.81- If `sub-templates` is empty, child-scope analysis options are not available for that template.82- If `applyOnSelf` changes, re-read trigger types before reusing an earlier choice.83- If `new-name` suggests a different value, use the suggested name instead of forcing a duplicate.84- If a template is missing, renamed, or access is denied, refresh the list and session before attempting template writes.8586## Validation scenarios87881. List available templates with `idmp-cli schema template.elements.list` and `idmp-cli template elements list --params '{"current":1,"size":20}'`.892. Read one template with `idmp-cli schema template.elements.get` and `idmp-cli template elements get --params '{"elementTemplateId":123}'`.903. Read template attributes with `idmp-cli attr-template elements attributes --params '{"elementTemplateId":123}'`.914. Check child-scope analysis readiness with `idmp-cli template elements sub-templates --params '{"elementTemplateId":123}'` and `idmp-cli analysis-template trigger-types list --params '{"elementTemplateId":123,"applyOnSelf":false}'`.925. Reserve create-safe names with `idmp-cli analysis-template analyses new-name --ack-risk --params '{"elementTemplateId":123,"name":"demo-analysis"}'` and `idmp-cli attr-template attributes new-name --params '{"elementTemplateId":123}'`.