diff --git a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/Draycott Family.md b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/Draycott Family.md index 4f7dc07..6e79d7f 100644 --- a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/Draycott Family.md +++ b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/Draycott Family.md @@ -1,6 +1,217 @@ -[[Faylen Valora|Faylen]] and [[Val]] go to meet with the family - and are eventually let in, with the guards outside bowing to [[Faylen Valora|Faylen]] +--- +Reputation: 0 +Faction_Type: Family +Motto: +Ideology: +Symbol: +Colors: +Headquarters: +Territories: + - +Allies: + - "[[Faylen Valora]]" +Rivals: + - +SMH_Acronym: +Intel: +Tags: + - faction +--- -# Fenric [[Draycott Family|Draycott]] -- Seems to be an old friend of [[Faylen Valora]]. Doesn't believe that [[Faylen Valora|Faylen]] would ever be caught walking around Whitewater. [[Faylen Valora|Faylen]] wonders if he has learned any Gossip - - There's been a change in [[House Tassarion]] leadership. - - [[House Elidari]] has been threatening to adopt a new Chief Enforcer \ No newline at end of file +# Draycott Family +*One-line role/description — e.g., “Elven High House controlling Y’athir’s docks.”* + +--- + +## 🎨 Artwork +![[Draycott Family.png]] +*Optional caption / artist credit* + +--- + +## 🧭 Identity & Heraldry +- **Motto:** `= default(this.Motto, "—")` +- **Symbol:** `= default(this.Symbol, "—")` +- **Colors:** `= default(this.Colors, "—")` +- **Headquarters:** `= default(this.Headquarters, "—")` +- **Territories:** `= this.Territories` + +--- + +## 📜 Ideology & Goals +- **Ideology / Alignment:** `= default(this.Ideology, "—")` +- **Primary Goals:** + - +- **Taboos / Anathema:** + - + +--- + +## 🤝 Relationship with Party +- **Reputation:** `= this.Reputation` + +--- + +## 🧑‍💼 Leadership & Structure +- **Leader(s):** [[NPC A]], [[NPC B]] +- **Structure:** (council, hierarchy, cells, chapters) +- **Key Offices:** (Intelligence, Logistics, Priory, Treasury, etc.) + +--- + +## 🧰 Assets & Operations +- **Resources:** (coin, troops, mages, ships, safehouses, contacts) +- **Notable Holdings:** +- **Typical Ops / Tactics:** + +--- + +## 🕊️ Diplomacy & Relations +- **Allies:** `= this.Allies` +- **Rivals:** `= this.Rivals` +- **Stance toward “SMH” (their wording):** `= default(this.SMH_Acronym, "—")` + +--- + +## 🧠 Intelligence & Mentions +```button +name ➕ Add Intel +type command +action Templater: Insert Add Intel Entry to Faction +``` +```dataviewjs +const THIS = dv.current(); +const thisName = String(THIS.file.name); +const thisLC = thisName.toLowerCase(); + +const factions = dv.pages("#faction"); + +// mention detector (same logic as your table) +function mentionsThisFaction(entry) { + const sum = String(entry.summary ?? ""); + if (sum.includes(`[[${thisName}]]`) || sum.includes(`[[${thisName}|`)) return true; + const src = entry.source; + const list = Array.isArray(src) ? src : (src ? [src] : []); + for (const s of list) { + if (typeof s === "string") { + if (s.includes(`[[${thisName}]]`) || s.includes(`[[${thisName}|`)) return true; + if (s.toLowerCase() === thisLC) return true; + } else if (s && typeof s === "object" && s.path) { + const base = s.path.split("/").pop().replace(/\.md$/i,"").toLowerCase(); + if (base === thisLC) return true; + } + } + return false; +} + +const own = (THIS.Intel ?? []).length; + +let mentions = 0; +for (const p of factions.where(p => p.file.name !== thisName)) { + for (const it of (p.Intel ?? [])) if (mentionsThisFaction(it)) mentions++; +} + +dv.paragraph(`_Entries: ${own + mentions} (own ${own} + mentions ${mentions})_`); +``` +```dataviewjs +// Current faction +const THIS = dv.current(); +const thisName = String(THIS.file.name); +const thisLC = thisName.toLowerCase(); + +// All faction pages (including this one) +const factions = dv.pages("#faction"); + +// Mention detector: summary has [[This Faction]] OR source points at this faction +function mentionsThisFaction(entry) { + const sum = String(entry.summary ?? ""); + if (sum.includes(`[[${thisName}]]`) || sum.includes(`[[${thisName}|`)) return true; + + const src = entry.source; + const list = Array.isArray(src) ? src : (src ? [src] : []); + for (const s of list) { + if (typeof s === "string") { + if (s.includes(`[[${thisName}]]`) || s.includes(`[[${thisName}|`)) return true; + if (s.toLowerCase() === thisLC) return true; // fallback: plain text match + } else if (s && typeof s === "object" && s.path) { // wikilink object + const base = s.path.split("/").pop().replace(/\.md$/i,"").toLowerCase(); + if (base === thisLC) return true; + } + } + return false; +} + +// Collect rows +const rows = []; + +// 1) Own intel +for (const it of (THIS.Intel ?? [])) { + rows.push({ + date: it.date ?? "", + from: THIS.file.link, + type: it.type ?? "", + summary: String(it.summary ?? ""), + source: it.source ?? "", + rel: it.reliability ?? "", + cred: it.credibility ?? "", + tags: Array.isArray(it.tags) ? it.tags.join(", ") : (it.tags ?? "") + }); +} + +// 2) Mentions from other factions +for (const p of factions.where(p => p.file.name !== thisName)) { + for (const it of (p.Intel ?? [])) { + if (mentionsThisFaction(it)) { + rows.push({ + date: it.date ?? "", + from: p.file.link, + type: it.type ?? "", + summary: String(it.summary ?? ""), + source: it.source ?? "", + rel: it.reliability ?? "", + cred: it.credibility ?? "", + tags: Array.isArray(it.tags) ? it.tags.join(", ") : (it.tags ?? "") + }); + } + } +} + +// Sort newest first +rows.sort((a,b) => String(b.date).localeCompare(String(a.date))); + +if (!rows.length) { + dv.paragraph("_No intel yet._"); +} else { + dv.table( + ["Date","From Faction","Type","Summary","Source","Rel","Cred","Tags"], + rows.map(r => [r.date, r.from, r.type, r.summary, r.source, r.rel, r.cred, r.tags]) + ); +} +``` +> Add new entries in the **frontmatter** under `Intel:` (keep newest on top). Suggested fields: `date, type, summary, source, reliability, credibility, tags`. + +--- + +## 🔗 Related NPCs (auto) +```dataview +TABLE link(file.name) AS NPC, number(Level_of_Influence) AS Influence, default(SMH_Acronym, "—") AS SMH +FROM #npc +WHERE file.name != "NPC Template" +AND ( + Faction = this.file.link + OR lower(string(Faction)) = lower(this.file.name) + OR contains(lower(string(Faction)), lower(this.file.name)) +) +SORT number(Level_of_Influence) DESC +``` + +--- + +## 📌 Plot Hooks & Notes +- +- + +--- + +## 🗒 Session Updates +- 2025-10-02: … diff --git a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Asase.md b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Asase.md index 46e2a04..98bf37b 100644 --- a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Asase.md +++ b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Asase.md @@ -1,6 +1,6 @@ --- Reputation: 0 -Faction_Type: +Faction_Type: High House Motto: Ideology: Symbol: diff --git a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Elidari.md b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Elidari.md index e0dd6f2..57ae98b 100644 --- a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Elidari.md +++ b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Elidari.md @@ -14,10 +14,18 @@ Rivals: - SMH_Acronym: Intel: + - date: 2025-10-02 + type: interaction + summary: We're told by [[Fenric Draycott]] that [[House Elidari]] has been threatening to adopt a new chief enforcer. + source: "[[Draycott Family]]" + reliability: A + credibility: 5 + tags: [] Tags: - faction --- + # House Elidari *Current Ruling House of Y'athyr* diff --git a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Miiran.md b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Miiran.md index 6559fc9..7e6945c 100644 --- a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Miiran.md +++ b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Miiran.md @@ -1,5 +1,241 @@ -[[Kite]] uncovers some letters that indicate that they have made some threats to buy the farm of [[Atmaka Sayin]]. +--- +Reputation: 0 +Faction_Type: High House +Motto: +Ideology: +Symbol: +Colors: +Headquarters: +Territories: + - +Allies: + - +Rivals: + - +SMH_Acronym: +Intel: + - date: 2025-10-02 + type: report + summary: "[[House Miiran]] owns a lumbering operation that is running out of land to...lumber?" + source: "[[Kite]]" + reliability: A + credibility: 5 + tags: [] + - date: 2025-10-02 + type: lore + summary: "[[House Miiran]] is frequently involved in the production of goods." + source: Lore + reliability: A + credibility: 5 + tags: [] + - date: 2025-10-02 + type: report + summary: "[[Kite]] finds a series of threatening letters that indiciate [[House Miiran]] wants to purchase the farm of [[Atmaka Sayin]]" + source: "[[Kite]]" + reliability: A + credibility: 5 + tags: [] +Tags: + - faction +--- -The family is frequently involved in the production of higher end goods. -We also learn that the nearby lumbering operation is running out of land to work on, especially with the nearby trackless territory. \ No newline at end of file + + +# House Miiran +*One-line role/description — e.g., “Elven High House controlling Y’athir’s docks.”* + +--- + +## 🎨 Artwork +![[House Miiran.png]] +*Optional caption / artist credit* + +--- + +## 🧭 Identity & Heraldry +- **Motto:** `= default(this.Motto, "—")` +- **Symbol:** `= default(this.Symbol, "—")` +- **Colors:** `= default(this.Colors, "—")` +- **Headquarters:** `= default(this.Headquarters, "—")` +- **Territories:** `= this.Territories` + +--- + +## 📜 Ideology & Goals +- **Ideology / Alignment:** `= default(this.Ideology, "—")` +- **Primary Goals:** + - +- **Taboos / Anathema:** + - + +--- + +## 🤝 Relationship with Party +- **Reputation:** `= this.Reputation` + +--- + +## 🧑‍💼 Leadership & Structure +- **Leader(s):** [[NPC A]], [[NPC B]] +- **Structure:** (council, hierarchy, cells, chapters) +- **Key Offices:** (Intelligence, Logistics, Priory, Treasury, etc.) + +--- + +## 🧰 Assets & Operations +- **Resources:** (coin, troops, mages, ships, safehouses, contacts) +- **Notable Holdings:** +- **Typical Ops / Tactics:** + +--- + +## 🕊️ Diplomacy & Relations +- **Allies:** `= this.Allies` +- **Rivals:** `= this.Rivals` +- **Stance toward “SMH” (their wording):** `= default(this.SMH_Acronym, "—")` + +--- + +## 🧠 Intelligence & Mentions +```button +name ➕ Add Intel +type command +action Templater: Insert Add Intel Entry to Faction +``` +```dataviewjs +const THIS = dv.current(); +const thisName = String(THIS.file.name); +const thisLC = thisName.toLowerCase(); + +const factions = dv.pages("#faction"); + +// mention detector (same logic as your table) +function mentionsThisFaction(entry) { + const sum = String(entry.summary ?? ""); + if (sum.includes(`[[${thisName}]]`) || sum.includes(`[[${thisName}|`)) return true; + const src = entry.source; + const list = Array.isArray(src) ? src : (src ? [src] : []); + for (const s of list) { + if (typeof s === "string") { + if (s.includes(`[[${thisName}]]`) || s.includes(`[[${thisName}|`)) return true; + if (s.toLowerCase() === thisLC) return true; + } else if (s && typeof s === "object" && s.path) { + const base = s.path.split("/").pop().replace(/\.md$/i,"").toLowerCase(); + if (base === thisLC) return true; + } + } + return false; +} + +const own = (THIS.Intel ?? []).length; + +let mentions = 0; +for (const p of factions.where(p => p.file.name !== thisName)) { + for (const it of (p.Intel ?? [])) if (mentionsThisFaction(it)) mentions++; +} + +dv.paragraph(`_Entries: ${own + mentions} (own ${own} + mentions ${mentions})_`); +``` +```dataviewjs +// Current faction +const THIS = dv.current(); +const thisName = String(THIS.file.name); +const thisLC = thisName.toLowerCase(); + +// All faction pages (including this one) +const factions = dv.pages("#faction"); + +// Mention detector: summary has [[This Faction]] OR source points at this faction +function mentionsThisFaction(entry) { + const sum = String(entry.summary ?? ""); + if (sum.includes(`[[${thisName}]]`) || sum.includes(`[[${thisName}|`)) return true; + + const src = entry.source; + const list = Array.isArray(src) ? src : (src ? [src] : []); + for (const s of list) { + if (typeof s === "string") { + if (s.includes(`[[${thisName}]]`) || s.includes(`[[${thisName}|`)) return true; + if (s.toLowerCase() === thisLC) return true; // fallback: plain text match + } else if (s && typeof s === "object" && s.path) { // wikilink object + const base = s.path.split("/").pop().replace(/\.md$/i,"").toLowerCase(); + if (base === thisLC) return true; + } + } + return false; +} + +// Collect rows +const rows = []; + +// 1) Own intel +for (const it of (THIS.Intel ?? [])) { + rows.push({ + date: it.date ?? "", + from: THIS.file.link, + type: it.type ?? "", + summary: String(it.summary ?? ""), + source: it.source ?? "", + rel: it.reliability ?? "", + cred: it.credibility ?? "", + tags: Array.isArray(it.tags) ? it.tags.join(", ") : (it.tags ?? "") + }); +} + +// 2) Mentions from other factions +for (const p of factions.where(p => p.file.name !== thisName)) { + for (const it of (p.Intel ?? [])) { + if (mentionsThisFaction(it)) { + rows.push({ + date: it.date ?? "", + from: p.file.link, + type: it.type ?? "", + summary: String(it.summary ?? ""), + source: it.source ?? "", + rel: it.reliability ?? "", + cred: it.credibility ?? "", + tags: Array.isArray(it.tags) ? it.tags.join(", ") : (it.tags ?? "") + }); + } + } +} + +// Sort newest first +rows.sort((a,b) => String(b.date).localeCompare(String(a.date))); + +if (!rows.length) { + dv.paragraph("_No intel yet._"); +} else { + dv.table( + ["Date","From Faction","Type","Summary","Source","Rel","Cred","Tags"], + rows.map(r => [r.date, r.from, r.type, r.summary, r.source, r.rel, r.cred, r.tags]) + ); +} +``` +> Add new entries in the **frontmatter** under `Intel:` (keep newest on top). Suggested fields: `date, type, summary, source, reliability, credibility, tags`. + +--- + +## 🔗 Related NPCs (auto) +```dataview +TABLE link(file.name) AS NPC, number(Level_of_Influence) AS Influence, default(SMH_Acronym, "—") AS SMH +FROM #npc +WHERE file.name != "NPC Template" +AND ( + Faction = this.file.link + OR lower(string(Faction)) = lower(this.file.name) + OR contains(lower(string(Faction)), lower(this.file.name)) +) +SORT number(Level_of_Influence) DESC +``` + +--- + +## 📌 Plot Hooks & Notes +- +- + +--- + +## 🗒 Session Updates +- 2025-10-02: … diff --git a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Tassarion.md b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Tassarion.md index bcccf2e..b542686 100644 --- a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Tassarion.md +++ b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/Factions/House Tassarion.md @@ -14,6 +14,13 @@ Rivals: - SMH_Acronym: Intel: + - date: 2025-10-02 + type: interaction + summary: We're told by [[Fenric Draycott]] that there's been a recent change in leadership for [[House Tassarion]] + source: "[[Draycott Family]]" + reliability: A + credibility: 5 + tags: [] - date: 2025-10-02 type: report summary: House Tassarion is generally known for their deaings with the craftsmanship of ships, wagons and buildings. @@ -40,6 +47,7 @@ Intel: Tags: - faction --- + diff --git a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/NPCs/Deidre Gille.md b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/NPCs/Deidre Gille.md index e69de29..c56e9f4 100644 --- a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/NPCs/Deidre Gille.md +++ b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/NPCs/Deidre Gille.md @@ -0,0 +1,76 @@ +--- +Level_of_Influence: 0 +Faction: "[[House Gille]]" +SMH_Acronym: +Tags: + - npc +--- + +# Deidre Gille +*Local Vineyard Owner* + +## 🎨 Artwork +![[Deidre Gille.png]] +*Optional caption / alt text* + +--- + +## 🧑 NPC Overview +- **Full Name:** Deidre Gille +- **Race / Ancestry:** Elf +- **Gender / Pronouns:** She/Her +- **Occupation / Role:** +- **Faction / Allegiance:** [[House Gille]] +- **SMH (what THEY call it):** `= this.SMH_Acronym` +- **Notable Traits:** (quirks, mannerisms, appearance) +- **First Impression:** (how the party perceives them) + +--- + +## 🤝 Relationship with Party +- **Level of Influence:** `= this.Level_of_Influence` (−10 to +10) +- **Notes on Influence:** (what actions improve/worsen standing) + - ***Discovery Skills*** + - ***Influence Skills*** + - ***Weaknesses*** + - ***Resistances*** + - ***Biases*** + +--- + +## 🏛️ Relations & Factions +- **Primary Faction:** [[House Gille]] +- **Allied Factions:** [[Faction A]], [[Faction B]] +- **Rival Factions:** [[Faction C]] +- **Personal Enemies / Allies:** [[NPC or PC]] + +--- + +## 📖 History & Background +- **Origin / Past:** +- **Known Motivations:** +- **Secrets / Rumors:** + +--- + +## 🎭 Roleplay Notes +- **Personality:** (e.g., stern, practical, loyal) +- **Speech Style / Quirks:** (catchphrases, accent, tics) +- **Appearance Details:** (clothing, scars, distinguishing features) + +--- + +## 🗺️ Miscellaneous +- **Current Location:** +- **Important Items / Assets:** +- **Plot Hooks / Ties to PCs:** +- **Session Notes / Updates:** + - 2025-10-02: … + +--- + +## 🔗 Connections +- **Related NPCs:** + - [[NPC A]] (Mentor) + - [[NPC B]] (Rival) +- **PC Ties:** (how the party knows them) diff --git a/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/NPCs/Fenric Draycott.md b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/NPCs/Fenric Draycott.md new file mode 100644 index 0000000..0c7d464 --- /dev/null +++ b/Dungeons and Dragons/A Legacy Forged/Factions and Relationships/NPCs/Fenric Draycott.md @@ -0,0 +1,77 @@ +--- +Level_of_Influence: 0 +Faction: "[[Draycott Family]]" +SMH_Acronym: +Tags: + - npc +--- + +# Fenric Draycott +*Role/Description — e.g., "Captain of the Guard", "Elven Scholar", "Local Merchant"* + +## 🎨 Artwork +![[Fenric Draycott.png]] +*Optional caption / alt text* + +--- + +## 🧑 NPC Overview +- **Full Name:** Fenric Draycott +- **Race / Ancestry:** +- **Gender / Pronouns:** He/Him +- **Occupation / Role:** +- **Faction / Allegiance:** +- **SMH (what THEY call it):** `= this.SMH_Acronym` +- **Notable Traits:** (quirks, mannerisms, appearance) +- **First Impression:** (how the party perceives them) + +--- + +## 🤝 Relationship with Party +- **Level of Influence:** `= this.Level_of_Influence` (−10 to +10) +- **Notes on Influence:** (what actions improve/worsen standing) + - ***Discovery Skills*** + - ***Influence Skills*** + - ***Weaknesses*** + - ***Resistances*** + - ***Biases*** + +--- + +## 🏛️ Relations & Factions +- **Primary Faction:** [[Draycott Family]] +- **Allied Factions:** [[House Valora]] +- **Rival Factions:** [[Faction C]] +- **Personal Enemies / Allies:** [[Faylen Valora]] --Ally + +--- + +## 📖 History & Background +- **Origin / Past:** +- **Known Motivations:** +- **Secrets / Rumors:** + +--- + +## 🎭 Roleplay Notes +- **Personality:** (e.g., stern, practical, loyal) +- **Speech Style / Quirks:** (catchphrases, accent, tics) +- **Appearance Details:** (clothing, scars, distinguishing features) + +--- + +## 🗺️ Miscellaneous +- **Current Location:** +- **Important Items / Assets:** +- **Plot Hooks / Ties to PCs:** +- **Session Notes / Updates:** + - 2025-10-02: … + +--- + +## 🔗 Connections +- **Related NPCs:** + - [[NPC A]] (Mentor) + - [[NPC B]] (Rival) +- **PC Ties:** + - [[Fenric Draycott]] is a longtime friend of [[Faylen Valora]] diff --git a/Templates/Add Intel Entry to Faction.md b/Templates/Add Intel Entry to Faction.md index 8c93b99..38e6724 100644 --- a/Templates/Add Intel Entry to Faction.md +++ b/Templates/Add Intel Entry to Faction.md @@ -7,24 +7,24 @@ if (!file) { new Notice("Open a Faction note first."); return; } const today = tp.date.now("YYYY-MM-DD"); // ---------- TYPE ---------- -new Notice("Step 1/6 — Pick Intel TYPE"); -const TYPE_OPTIONS = ["interaction","report","rumor","asset","op"]; +new Notice("Step 1/6 — Pick TYPE of Intelligence"); +const TYPE_OPTIONS = ["interaction","report","rumor","asset","op","lore"]; const type = await tp.system.suggester(TYPE_OPTIONS.map(x => `Type: ${x}`), TYPE_OPTIONS); if (!type) { new Notice("Cancelled."); return; } // ---------- SOURCE (suggest existing notes as [[Note]]) ---------- -new Notice("Step 2/6 — Choose SOURCE"); +new Notice("Step 2/6 — Select Intelligence SOURCE"); const allFiles = app.vault.getMarkdownFiles(); const names = allFiles.map(f => f.basename).sort((a,b)=>a.localeCompare(b, undefined, {sensitivity:"base"})); -const wikiChoices = ["(manual entry)…", ...names.map(n => `[[${n}]]`)]; +const wikiChoices = ["(Manual Entry)…", ...names.map(n => `[[${n}]]`)]; let sourcePick = await tp.system.suggester(wikiChoices, wikiChoices); if (!sourcePick) { new Notice("Cancelled."); return; } -let source = sourcePick === "(manual entry)…" +let source = sourcePick === "(Manual Entry)…" ? (await tp.system.prompt("Source (free text or [[Link]])")) ?? "" : sourcePick; // ---------- SUMMARY (free text, then auto-complete [[links]]) ---------- -new Notice("Step 3/6 — Write SUMMARY (you can include [[links]])"); +new Notice("Step 3/6 — Write Intelligence SUMMARY"); let summary = await tp.system.prompt("Summary (what happened)?\nTip: You can include [[Note]] names; we’ll auto-complete them next.") ?? ""; // Helper: resolve [[links]] in the summary to existing notes (prompt if ambiguous) @@ -67,12 +67,12 @@ while (true) { // ---------- RELIABILITY / CREDIBILITY ---------- new Notice("Step 4/6 — Reliability (A–E)"); -const relDisplay = ["A — confirmed","B — likely","C — uncertain","D — doubtful","E — unknown"]; +const relDisplay = ["A — Confirmed","B — Likely","C — Uncertain","D — Doubtful","E — Unknown"]; const relValues = ["A","B","C","D","E"]; const reliability = (await tp.system.suggester(relDisplay, relValues)) ?? "C"; new Notice("Step 5/6 — Credibility (1–5)"); -const credDisplay = ["5 — strong","4 — good","3 — fair","2 — weak","1 — very weak"]; +const credDisplay = ["5 — Strong","4 — Good","3 — Fair","2 — Weak","1 — Very Weak"]; const credValues = ["5","4","3","2","1"]; const credibility = (await tp.system.suggester(credDisplay, credValues)) ?? "3";