Skip to content

Spun out of KB-OS-dept-structure to replace Core/Misc/OrgChart.md’s hand-written ## Tree block with a deterministic regeneration tool, same pattern as folder_structure.

  • orgchart CLI at D:\FSS\Software\Utils\PythonUtils\orgchart\ (uv-managed, typer, folder_structure pattern) — walks Staff-file frontmatter for name:/reports_to: pairs and rewrites OrgChart.md’s ## Tree fenced block only, leaving surrounding prose hand-maintained. Registered at Core/IT/Utils/Custom/orgchart.md.
  • Added reports_to: frontmatter to every Staff file — the structured edge the parser walks (CEO for SVPs, SVP-<Dept>/VP-<SubDept> below that).
  • 6 stub Staff files scaffolded on Talbot’s request (SVP-Cancer50, VP-Dev/UX/Data under IT, VP-Content/Growth under Mktg), each dept’s JOB_DESCRIPTION.md Staff section + Agent-Team.md roster updated to match. This closed a self-flagged gap: stub sub-depts had been hand-annotated inside the old fence; now they’re real files the tool sees.
  • Scope decision: stub Staff files only, no new JOB_DESCRIPTION.md per sub-dept — IT/Mktg’s existing dept-level JD covers them. /dept-init applies to a genuinely new top-level <Biz>/<Dept> (e.g. Core/Cancer50 when it activates — has JOB_DESCRIPTION.md/Staff/ but no Tasks//Logs/ yet), not to a sub-dept stub under an already-initialized dept.
  • Extended later (separate task, KB-OS-dept-structure) to scan the whole vault, not just Core/.

Bug found and fixed at the source (not a per-file patch)

Section titled “Bug found and fixed at the source (not a per-file patch)”

A bare - Next-Steps reply placeholder (two spaces, dash, no content) is a CommonMark setext heading underline when it directly follows a text line with no blank line between — it silently turns the checkbox line above it into a heading. Reproduced live in Obsidian and via markdownlint-cli2 (MD022). Worse: markdownlint-cli2 --fix’s trailing-space cleanup (MD009) strips the placeholder’s trailing space — - → - — which re-creates the trigger even on a file already fixed once, so a per-file lint pass alone doesn’t hold.

Fixed at the source: ~/ai-config/claude/commands/task-start.md and task-continue.md now require a blank line before every placeholder (ai-config commit 788cbf5, deployed). Documented in Core/Processes/Simple Markdown Task Management/SMTM_System.md:244 so the hazard travels with the convention. Verified fixed live in Obsidian via screenshot, not just via the linter.

  • PythonUtils: a1aec8c (build), bab88a4 (whole-vault scan, later task)
  • KB: b0c49bb, 78dae76, 0a9a48f, c54527b, cdfe9bc, c93870a
  • ai-config: 788cbf5 (placeholder blank-line fix, deployed)