--- name: "connect" description: "Manage Microsoft Connect (perf review) tracking inside the Obsidian vault. Reads the active Connect markdown in D:\\Repos\\Obsidian\\04 - Connects\\, cross-references the rest of the vault for evidence (daily notes, squad meetings, status updates, decisions), and emits weekly check-ins, draft narratives, 1:1 prep digests, and gap warnings. Triggers: 'connect', 'connect check-in', 'connect prep', 'connect draft', or any /connect subcommand." --- ## Connect Skill Helps the user track and stay on top of their Microsoft Connect (perf review) period using their Obsidian vault as the source of truth. **Vault root:** `D:\Repos\Obsidian\` **Connect folder:** `D:\Repos\Obsidian\04 - Connects\` **Templates:** `D:\Repos\Obsidian\04 - Connects\Templates\` **Output folders (skill writes here):** - `04 - Connects\Check-ins\YYYY-MM-DD.md` - `04 - Connects\Drafts\YYYY-MM.md` The skill is **read-only** outside `04 - Connects\` — never modify daily notes, squad notes, or meeting notes. Only emit new files inside `04 - Connects\`. --- ### Active Connect doc The user authors one markdown per Connect period (e.g. `2026-H1.md`) directly in `04 - Connects\`. The "active" doc is the one whose frontmatter has `status: active`. Use this PowerShell to find it: ```powershell Get-ChildItem 'D:\Repos\Obsidian\04 - Connects\*.md' -File | ForEach-Object { $head = Get-Content $_.FullName -TotalCount 12 -ErrorAction SilentlyContinue if ($head -match 'status:\s*active') { $_.FullName } } ``` If multiple are marked active, prefer the one whose `period` lexically sorts last and warn the user. If none are active, tell the user and offer `/connect new`. ### Connect doc convention (for parsing) ```yaml --- type: connect period: 2026-H1 status: active start: 2026-01-01 end: 2026-06-30 manager: --- ``` Body sections: - `## Core Priority N — ` — one per priority. Sub-fields: - `**Tags:** #cp/<tag1> #cp/<tag2>` — these are the tag hooks for evidence rollup. - `**What success looks like:**` - `**Key results / milestones:**` - `**People / projects / keywords:**` - `## Growth & Learning` - `## Manager check-in notes` - `## Submitted Connect` ### Evidence sources (READ ONLY) Scan these for evidence to attribute to priorities: 1. `01 - Daily\*.md` — look in `## ✅ Tasks`, `## 📌 Highlights`, `## 🌙 Reflection` (Wins/Lessons), `## ✅ Action Items`, `## 💬 Teams Activity`, `## 🗓️ Meetings`. 2. `02 - Meetings\**\*.md` and `03 - Squads\**\Meetings\*.md` — meeting summaries, decisions, action items. 3. `03 - Squads\**\Status Updates\*.md` — explicit status writeups. 4. `03 - Squads\**\04 - Decisions.md` — squad decisions. 5. `00 - Inbox\*.md` — only if the file is dated within the window. ### Matching strategy (apply in order, dedupe) 1. **Tag match** — `#cp/<tag>` anywhere in a note attributes that note to the matching priority. 2. **Keyword/people/project match** — extract terms from each priority's `**People / projects / keywords:**` line plus the priority title; case-insensitive substring match against note body. Be conservative — require at least one strong match (a project/person, not a generic word). 3. **Recency window** — defaults: weekly = last 7 days, period-to-date = since `start` in frontmatter, custom = whatever the user passes. When emitting evidence, always cite the source note as an Obsidian wikilink (e.g. `[[2026-05-11]]`, `[[2026-05-12 - OMR Reliability Cross-Squad Meetup]]`). --- ## Subcommands The user may invoke any of these. If they say `/connect` with no subcommand, ask which one — show the table of options. If they describe an intent in natural language ("how am I doing on connect?"), pick the closest subcommand. ### `/connect status` Show: - The active Connect doc path + period + days remaining until `end`. - Each Core Priority: title, tag hooks, **last evidence date** found in the vault, **count of evidence items** in the period. - Cold priorities (no evidence in last 14 days). - Top 3 gaps. Do NOT write any file. Just respond. ### `/connect evidence [priority] [--since YYYY-MM-DD]` List every evidence snippet matched, grouped by priority. If `priority` is omitted, do all. If `--since` omitted, default to last 7 days. For each snippet include: source wikilink, date, one-line summary, why it matched (tag vs keyword). Do NOT write any file. Just respond. ### `/connect checkin` Generate a weekly check-in note from `Templates\Check-in.md`. Fill in: - Per-priority new evidence (last 7 days), summarized in 1–3 bullets each. - Gaps / risks (priorities with thin evidence, action items going stale). - Suggested next actions (concrete, attributable to a priority). - Cold priorities (>14d silent). - "For the manager 1:1" section — punchy, max 5 bullets. Save to `04 - Connects\Check-ins\YYYY-MM-DD.md` (use today's date in PT). If a check-in already exists for today, ask before overwriting; default to appending a `## Re-run HH:MM` section. Then briefly tell the user the path and the top 3 highlights. ### `/connect draft` Produce a narrative draft per priority suitable for pasting into HR Web. Style: - 1–3 paragraphs per priority, written in first person, past/present tense as appropriate. - Lead with impact ("what changed in the world"), then approach, then evidence. - Reference specific work (project names, decisions, metrics) — pull these from the vault evidence. - No fluff, no buzzwords beyond what the user already uses. Save to `04 - Connects\Drafts\YYYY-MM.md` (current month). Overwrite freely; this is a draft. Then summarize what's in the draft and flag any priority where evidence felt thin. ### `/connect prep <name>` Pull Connect-relevant evidence since the last 1:1 with `<name>` (look in `02 - Meetings\` for the most recent file containing that name, or fall back to last 14 days). Output as a markdown digest grouped by priority. Do NOT write a file unless the user asks. If `<name>` matches the `manager:` frontmatter, this is a manager-prep run — include the Submitted Connect snippet from the doc and a "what I'd like to discuss" section. ### `/connect new <period>` Scaffold a new Connect markdown: 1. Find the current active doc and set its frontmatter to `status: archived`. 2. Copy `Templates\Connect Period.md` to `04 - Connects\<period>.md` (e.g. `2026-H2.md`). 3. Substitute `{{period}}`, `{{start}}`, `{{end}}` based on the period name (H1 = Jan 1–Jun 30, H2 = Jul 1–Dec 31 of the year embedded in the period). 4. Tell the user to fill in titles, tags, and goals, then re-run `/connect status`. --- ## Implementation notes - Use PowerShell `Get-ChildItem` + `Select-String` (or `grep` tool) to scan files efficiently. For large scans batch by month rather than reading every file. - Always parse frontmatter via simple line-based regex; don't pull in YAML libs. - Use `[[wikilink]]` style with the file's basename (no `.md`, no path) for Obsidian compatibility. - All "today" decisions use America/Los_Angeles. Use `Get-Date` formatted as `yyyy-MM-dd`. - When generating, be honest about gaps. Do not fabricate evidence. If a priority truly has no matched notes, say so explicitly. - Sensitivity: Connect content is private. Never send drafts via Teams/email automatically. Files inside the Obsidian vault are fine. ## First-run guidance If `04 - Connects\` has no `*.md` other than the templates, tell the user: > "No Connect doc yet. Run `/connect new 2026-H1` (or your current period) to scaffold one, then fill in your Core Priorities and tags."