Files
SecondBrain/10 Knowledge/Templates/Jira incident template.md
T

126 lines
2.9 KiB
Markdown

---
date:
jira:
actual_sync_issue: false
status: investigating
classification:
---
<%*
const baseTrackingFolder = "20 Work/Tracking";
// Today's values
const date = tp.date.now("YYYY-MM-DD");
const year = tp.date.now("YYYY");
const month = tp.date.now("MM");
// Find available Tracking folders
const trackingRoot = app.vault.getAbstractFileByPath(baseTrackingFolder);
if (!trackingRoot) {
new Notice("Tracking folder not found.");
return;
}
const folders = trackingRoot.children
.filter(item => item.children)
.map(item => item.name)
.sort();
if (folders.length === 0) {
new Notice("No tracking folders found.");
return;
}
// Select tracking category
const tracking = await tp.system.suggester(
folders,
folders,
false,
"Select tracking folder"
);
if (!tracking) {
new Notice("Tracking cancelled.");
return;
}
// Jira number
const jira = await tp.system.prompt(
"Jira ticket (ex: PBI-123)"
);
if (!jira) {
new Notice("Tracking cancelled: no Jira ticket entered.");
return;
}
// Update YAML properties
const currentFile = tp.file.find_tfile(tp.file.path(true));
await app.fileManager.processFrontMatter(
currentFile,
(frontmatter) => {
frontmatter.date = date;
frontmatter.jira = jira.toUpperCase();
frontmatter.actual_sync_issue = false;
frontmatter.status = "investigating";
frontmatter.classification = null;
}
);
// Create destination folders
const trackingFolder = `${baseTrackingFolder}/${tracking}`;
const yearFolder = `${trackingFolder}/${year}`;
const monthFolder = `${yearFolder}/${month}`;
if (!app.vault.getAbstractFileByPath(yearFolder)) {
await app.vault.createFolder(yearFolder);
}
if (!app.vault.getAbstractFileByPath(monthFolder)) {
await app.vault.createFolder(monthFolder);
}
// Move + rename
await tp.file.move(
`${monthFolder}/${date} - ${jira.toUpperCase()}`
);
// Generate heading
tR += `# ${jira.toUpperCase()}`;
-%>
## Observation
-
## Verification
- Reported time:
- Checked time:
- Expected availability:
- Content available:
- Technical issue identified:
## Outcome
-
---
Available status:
- investigating
- resolved
- monitoring
Available classifications
| Classification | Use when |
| -------------------- | ---------------------------------------------------------------------------------- |
| confirmed-sync-issue | There was an actual technical synchronization problem |
| no-issue-confirmed | Complaint resolved/no technical issue found |
| unrelated-issue | The problem was real, but **not caused by synchronization** |
| user-error | Incorrect action/configuration/input by the requester caused the perceived problem |
| unknown | Insufficient information to determine what happened |