Skip to content

Commit cc079a8

Browse files
committed
chore(skills): add disable-model-invocation, minor formatting fixes
- add disable-model-invocation: true to add-recipe, add-vinyl, auto-commit, daily-recap, dev-story, get-story, meeting-note, quick-note, spike, weekly-review skills - simplify glab mr view command in address-review - fix blank lines and markdown table alignment across skill docs
1 parent 7e97ed1 commit cc079a8

File tree

11 files changed

+72
-6
lines changed

11 files changed

+72
-6
lines changed

ai-stuff/claude/skills/add-recipe/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
name: add-recipe
33
description: Add a cooking recipe to the vault with proper frontmatter. Accepts a recipe name, description, or URL to parse.
44
tools: Write, Read, Glob, WebFetch
5+
disable-model-invocation: true
56
argument-hint: <recipe name or URL>
67
---
78

ai-stuff/claude/skills/add-vinyl/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
name: add-vinyl
33
description: Add a vinyl record to the collection with Discogs metadata. Accepts artist and album name, or a Discogs URL.
4+
disable-model-invocation: true
45
tools: Write, Read, Glob, WebFetch, WebSearch
56
argument-hint: <"artist - album" or Discogs URL>
67
---
@@ -34,6 +35,7 @@ discogs_link: <full discogs release URL>
3435
date_of_purchase: <YYYY-MM-DD, default to today>
3536
purchased_store: <store name, ask user if not provided>
3637
---
38+
3739
tags:: [[virtual library]]
3840

3941
### Album Cover

ai-stuff/claude/skills/address-review/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ Determine VCS:
5353

5454
### PR/MR Info
5555

56-
!`gh pr view --json number,title,url,state 2>/dev/null || glab mr view --output json 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); print(json.dumps({k:d[k] for k in ['iid','title','web_url','state'] if k in d}), end='')" 2>/dev/null || echo "no open pr/mr found"`
56+
!`gh pr view --json number,title,url,state 2>/dev/null || glab mr view 2>/dev/null || echo "no open pr/mr found"`
5757

5858
## Instructions
5959

ai-stuff/claude/skills/auto-commit/SKILL.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name: auto-commit
33
description: Analyze all staged and unstaged changes, group them into logical commits, and execute them in order
44
context: fork
55
agent: gitboi
6+
disable-model-invocation: true
67
allowed-tools:
78
- Read
89
- Grep
@@ -121,9 +122,10 @@ Start by surveying the damage:
121122
> [Analyzes all changes]
122123
>
123124
> OK here's the plan - I'm splitting this into N commits:
125+
>
124126
> 1. type(scope): what
125127
> 2. type(scope): what
126-
> ...
128+
> ...
127129
>
128130
> [Executes each commit]
129131
>

ai-stuff/claude/skills/daily-recap/SKILL.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
name: daily-recap
3-
description: Fetch today's activity from Slack, Gmail, and Google Calendar, then update/create your daily note in the vault with a recap and standup draft.
3+
description: "Fetch today's activity from Slack, Gmail, and Google Calendar, then update/create your daily note in the vault with a recap and standup draft."
4+
disable-model-invocation: true
45
argument-hint: [YYYY-MM-DD] (defaults to today)
56
model: sonnet
67
allowed-tools:
@@ -65,6 +66,7 @@ Fetch today's activity from Slack, Gmail, and Google Calendar. Synthesize into a
6566
### Step 1: Determine date
6667

6768
Parse from `$ARGUMENTS`:
69+
6870
- If a date like `2026-03-23`: use that
6971
- If empty: use today's date
7072

@@ -73,6 +75,7 @@ Parse from `$ARGUMENTS`:
7375
#### 2a. Today's calendar events
7476

7577
Fetch today's events using `gcal_list_events`:
78+
7679
- Start: `YYYY-MM-DDT00:00:00`
7780
- End: `YYYY-MM-DDT23:59:59`
7881
- Note event titles, times, attendees
@@ -146,34 +149,40 @@ slack_read_thread(
146149
Use `gmail_search_messages` with multiple targeted searches:
147150

148151
**General email search:**
152+
149153
```
150154
query: "after:YYYY/MM/DD before:YYYY/MM/DD+1"
151155
```
152156

153157
**GitLab-specific search** (MR reviews, pipeline updates, mentions):
158+
154159
```
155160
query: "from:gitlab@twtools.io after:YYYY/MM/DD before:YYYY/MM/DD+1"
156161
```
157162

158163
Look for:
164+
159165
- **MR review requests** — your MR needs review or someone assigned you a review
160166
- **MR approvals/changes** — feedback on your MRs
161167
- **Pipeline notifications** — CI/CD failures or successes on your branch/MR
162168
- **Mentions in discussions** — someone @mentioned you in an MR comment or issue
163169
- **MR merges** — your MR or related MRs that merged
164170

165171
**Jira-specific search** (ticket assignments, workflow changes):
172+
166173
```
167174
query: "from:jira@wahanda.atlassian.net after:YYYY/MM/DD before:YYYY/MM/DD+1"
168175
```
169176

170177
Look for:
178+
171179
- **New tickets assigned to you** — add to `## recap → needs attention` with tag `#new-ticket`
172180
- **Status changes on your tickets** — useful context for what changed
173181
- **Comments on tickets you watch** — decide if actionable, flag with `#review-feedback` if relevant
174182
- **Blocker notifications** — tickets you're blocked on or blocking others
175183

176184
**Read most relevant emails** with `gmail_read_message`. Focus on:
185+
177186
- Action items (needs your review, response, or decision)
178187
- Decisions made (merged MRs, closed tickets)
179188
- Unresolved items (pending reviews, open feedback)
@@ -188,13 +197,15 @@ Dia is a browser that generates its own daily activity summaries as HTML artifac
188197
**If no output is returned**, skip this step silently.
189198

190199
**Parse the HTML content** — look for these sections (the structure is consistent):
200+
191201
- `.section` with section-label **"Completed"**`.item h3` (title) + `.item p` (description) + `.tag` spans
192202
- `.section` with section-label **"Meetings"**`.meeting` rows with time + title
193203
- `.section` with section-label **"Tomorrow"**`.next-item` rows
194204

195205
**If no context was modified today**, skip this step silently (don't fail).
196206

197207
**Merge Dia data into synthesis (Step 4):**
208+
198209
- Dia "Completed" items → merge into Bucket 1 (what you did today). Avoid duplicating items already captured from Slack/Gmail. Dia tends to have richer descriptions of browser-based work (MR reviews, Datadog investigations, etc.)
199210
- Dia "Tomorrow" items → merge into Bucket 2 (notes for tomorrow)
200211
- Dia tags (e.g. `DEVX-1111`, `Datadog`) → use as context when writing task descriptions, but don't include them literally as Obsidian tags
@@ -204,6 +215,7 @@ Dia is a browser that generates its own daily activity summaries as HTML artifac
204215
When synthesizing Slack data, apply these filters:
205216

206217
**Keep** (work signal):
218+
207219
- Thread replies in team channels (#team-devx-public, #team-devx-private, etc.)
208220
- Code review discussions (MR links, GitLab/GitHub links)
209221
- Support given (helping others with questions)
@@ -212,6 +224,7 @@ When synthesizing Slack data, apply these filters:
212224
- PR approval requests
213225

214226
**Skip** (noise):
227+
215228
- Personal DM chatter (physio appointments, office plans, social banter)
216229
- Short acknowledgments ("hi", "yess", "sure", emoji-only messages)
217230
- Bot messages that are purely informational (unless they indicate something actionable)
@@ -225,9 +238,11 @@ Check the injected **"Existing daily notes"** list above:
225238

226239
- **If `YYYY-MM-DD.md` appears in the list**: the note exists — read it with `obsidian read path="work/daily notes/YYYY-MM-DD.md"`
227240
- **If it does NOT appear**: create it from template:
241+
228242
```bash
229243
obsidian create name="YYYY-MM-DD" path="work/daily notes" template="daily-template" silent
230244
```
245+
231246
Wait (`sleep 3`) for Templater to process, then read it.
232247

233248
### Step 4: Synthesize and format output
@@ -253,6 +268,7 @@ Read the daily note file directly to find each section, then use `Edit` to inser
253268
### Step 6: Summary
254269

255270
After writing, give a brief conversational summary:
271+
256272
- One line on the overall vibe of the day
257273
- Call out 1-2 things that need attention tomorrow
258274
- Confirm the file was updated

ai-stuff/claude/skills/dev-story/SKILL.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name: dev-story
33
description: Fetch a Jira story and prepare development context. Use when starting work on a ticket, need to understand requirements, or want to prepare for implementation
44
context: fork
55
agent: jiragirl
6+
disable-model-invocation: true
67
allowed-tools: mcp__claude_ai_Atlassian__getJiraIssue, mcp__claude_ai_Atlassian__getJiraIssueRemoteIssueLinks, mcp__claude_ai_Atlassian__searchJiraIssuesUsingJql, Read, Glob, Grep
78
argument-hint: <DEVX-XXX or issue key>
89
---
@@ -12,9 +13,11 @@ argument-hint: <DEVX-XXX or issue key>
1213
You are **Jira Girl** fetching story context, then handing off to development mode.
1314

1415
## Persona
16+
1517
@~/.claude/personas/jira-girl.md
1618

1719
## Configuration
20+
1821
@~/.claude/config/jira-config.md
1922

2023
## Instructions
@@ -24,14 +27,17 @@ Fetch a Jira story and prepare comprehensive development context.
2427
### Process
2528

2629
1. Parse issue key from: `$ARGUMENTS`
30+
2731
- If just a number, prepend `DEVX-`
2832
- If full key provided, use as-is
2933

3034
2. Fetch the issue using `mcp__claude_ai_Atlassian__getJiraIssue`:
35+
3136
- cloudId: `56552dac-b6cf-4e59-aa06-5e075dca9f8e`
3237
- issueKey: parsed from arguments
3338

3439
3. Extract and present:
40+
3541
- **Summary**: Issue title
3642
- **Description**: Full description content
3743
- **Acceptance Criteria**: From `customfield_10020` if present
@@ -41,31 +47,39 @@ Fetch a Jira story and prepare comprehensive development context.
4147
- **Linked Issues**: Related tickets
4248

4349
4. Check for remote links (PRs, external refs):
50+
4451
```
4552
mcp__claude_ai_Atlassian__getJiraIssueRemoteIssueLinks
4653
```
4754

4855
5. Format output for development handoff:
56+
4957
```markdown
5058
# DEVX-XXX: [Summary]
5159

5260
## Status
61+
5362
[Current status]
5463

5564
## Description
65+
5666
[Full description]
5767

5868
## Acceptance Criteria
69+
5970
- [ ] Criterion 1
6071
- [ ] Criterion 2
6172

6273
## Linked Issues
74+
6375
- DEVX-YYY: Related ticket
6476

6577
## Remote Links
78+
6679
- PR #123: [title]
6780

6881
## Ready for Development
82+
6983
[Brief summary of what needs to be done]
7084
```
7185

ai-stuff/claude/skills/get-story/SKILL.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ description: Fetch and display a Jira issue with all details using Jira Girl. Us
44
context: fork
55
agent: jiragirl
66
allowed-tools: mcp__claude_ai_Atlassian__getJiraIssue
7+
disable-model-invocation: true
78
argument-hint: <DEVX-XXX or issue number>
89
---
910

@@ -12,9 +13,11 @@ argument-hint: <DEVX-XXX or issue number>
1213
You are **Jira Girl** - fetch that issue and serve it up with enthusiasm!
1314

1415
## Persona
16+
1517
@~/.claude/personas/jira-girl.md
1618

1719
## Configuration
20+
1821
@~/.claude/config/jira-config.md
1922

2023
## Instructions
@@ -24,18 +27,21 @@ Fetch a Jira issue and display only the body content and comments.
2427
### Process
2528

2629
1. Parse issue key from: `$ARGUMENTS`
30+
2731
- If just a number (e.g., `123`), prepend `DEVX-`
2832
- If full key (e.g., `DEVX-123`), use as-is
2933
- If different project prefix, use that
3034

3135
2. Fetch the issue:
36+
3237
```
3338
mcp__claude_ai_Atlassian__getJiraIssue
3439
- cloudId: 56552dac-b6cf-4e59-aa06-5e075dca9f8e
3540
- issueKey: <parsed key>
3641
```
3742

3843
3. Display only:
44+
3945
- **Description** (full content)
4046
- **Comments** (all footer and inline comments)
4147

@@ -49,6 +55,7 @@ Fetch a Jira issue and display only the body content and comments.
4955
[Full description content]
5056

5157
## Comments
58+
5259
[All comments displayed in order]
5360

5461
View: [DEVX-XXX](https://wahanda.atlassian.net/browse/DEVX-XXX)

ai-stuff/claude/skills/meeting-note/SKILL.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
name: meeting-note
33
description: "Create a meeting note in the vault with proper frontmatter and structure. Use when the user mentions a meeting, wants to take notes for a call, says 'meeting with X', 'sync with X', 'let me document this call', or is about to join or just finished a meeting."
44
tools: Bash, Read
5+
disable-model-invocation: true
56
argument-hint: <meeting title>
67
---
78

@@ -14,29 +15,34 @@ Create a meeting note in the Obsidian vault using the `meeting-template` via the
1415
1. Parse the meeting title from: `$ARGUMENTS`
1516
- If no arguments provided, ask for the meeting title
1617
2. Create the note using the Obsidian CLI:
18+
1719
```bash
1820
obsidian create name="<meeting title>" template="meeting-template"
1921
```
22+
2023
The template handles everything — frontmatter, date prefix, folder placement (`work/meetings/`), and structure. No need to manually construct paths or content.
2124
3. Confirm creation and report the file path
2225

2326
### What the template produces
2427

2528
The meeting-template creates a note at `work/meetings/YYYY-MM-DD <title>.md` with:
29+
2630
- Frontmatter: date, type, client, tags, summary
2731
- Sections: Attendees, Agenda, Questions, Notes, Action Items
2832
- Wikilinks to the daily note and meetings MoC
2933

3034
### After creation
3135

3236
If the user provided attendees, agenda items, or context in their message, use `obsidian append` to fill in the relevant sections:
37+
3338
```bash
3439
obsidian append file="YYYY-MM-DD <title>" content="- @person1\n- @person2"
3540
```
3641

3742
### Summary field
3843

3944
The `summary` frontmatter field is important — it powers the meeting views (MoC, date summary, monthly summary). Remind the user to fill it in after the meeting, or offer to set it if they share what the meeting was about:
45+
4046
```bash
4147
obsidian property:set file="YYYY-MM-DD <title>" name="summary" value="discussed X and decided Y"
4248
```

ai-stuff/claude/skills/quick-note/SKILL.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
name: quick-note
33
description: "Quick capture a note to work/random or personal/random. Use when the user says 'jot this down', 'save this thought', 'note to self', 'remember this idea', or mentions a random idea, link, or snippet they want to capture. Also trigger when the user wants to quickly save something without specifying a particular note type."
44
tools: Bash, Read
5+
disable-model-invocation: true
56
argument-hint: <note title> [--personal]
67
---
78

@@ -17,15 +18,19 @@ Quickly capture a note to the vault's random folders using the Obsidian CLI.
1718
- The remaining text is the note title
1819
- If no arguments: ask what to capture
1920
2. Create the note using the Obsidian CLI:
21+
2022
```bash
2123
obsidian create path="<work|personal>/random/<title slug>.md" content="# <Title>"
2224
```
25+
2326
- title slug: lowercase with spaces (e.g., `devx support bot idea.md`)
2427
- No template needed — quick notes are intentionally minimal
2528
3. If the user provided content in the same message, append it:
29+
2630
```bash
2731
obsidian append file="<title slug>" content="<the content>"
2832
```
33+
2934
4. Report the created file path when done
3035

3136
### Rules

0 commit comments

Comments
 (0)