Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions plugins/learning/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "arevlo:learning",
"description": "Personal learning tools — vocabulary lookup and grammar/punctuation rules, in English and Spanish.",
"version": "2.0.0"
}
63 changes: 63 additions & 0 deletions plugins/learning/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Learning Plugin

Personal learning tools for vocabulary lookup and grammar/punctuation rules. Supports English and Spanish.

## Commands

### `/arevlo:learning:vocab`

Look up a word — definition, pronunciation, and a simple example.

**Usage:**
```
/arevlo:learning:vocab <word>
/arevlo:learning:vocab es <word>
```

- Default language is English
- Prefix with `es` for Spanish lookups
- Uses web search to find definitions from authoritative dictionaries

### `/arevlo:learning:grammar`

Look up a grammar or punctuation rule — usage, examples, and common mistakes.

**Usage:**
```
/arevlo:learning:grammar <rule or punctuation mark>
/arevlo:learning:grammar es <rule>
```

- Default language is English
- Prefix with `es` for Spanish lookups
- Covers grammar rules, punctuation marks, commonly confused words

## Installation

This plugin is part of the `claude-code-workflows` marketplace.

1. Add the marketplace to `~/.claude.json`:
```json
{
"extraKnownMarketplaces": {
"claude-code-workflows": {
"source": {
"source": "github",
"owner": "arevlo",
"repo": "claude-code-workflows"
}
}
}
}
```

2. Enable the plugin in `~/.claude/settings.json`:
```json
{
"enabledPlugins": {
"arevlo:learning@claude-code-workflows": true
}
}
```

3. Restart Claude Code or run `/plugins refresh`
84 changes: 84 additions & 0 deletions plugins/learning/commands/grammar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
description: Look up a grammar or punctuation rule — usage, examples, and common mistakes (English/Spanish)
argument-hint: "[es] <rule or punctuation mark>"
allowed-tools: WebSearch,WebFetch
model: haiku
---

# Grammar & Punctuation Lookup

Look up a grammar or punctuation rule and display practical guidance with real-world examples. Supports English (default) and Spanish.

## Process

1. Extract the arguments. If no arguments were provided, ask the user what grammar rule or punctuation mark they want to look up. Suggest a few examples:
- English: semicolons, em dashes, oxford comma, who vs whom, affect vs effect
- Spanish: punto y coma, tilde, signos de interrogacion, por que vs porque, ser vs estar

2. **Detect language:** Check if the first token is `es` (case-insensitive). If so, the language is **Spanish** and the topic is everything after `es`. Otherwise, the language is **English** and the entire argument is the topic.

3. **Search for the rule:**

**English:** Use WebSearch to search for: `<topic> grammar rule usage examples site:grammarly.com OR site:owl.purdue.edu OR site:chicagomanualofstyle.org`
Then use WebFetch on the most relevant result to get the full explanation.

**Spanish:** Use WebSearch to search for: `<topic> regla gramatical uso ejemplos site:dle.rae.es OR site:fundeu.es OR site:wikilengua.org`
Then use WebFetch on the most relevant result to get the full explanation.

4. **Format the output:**

**English format:**

```
## <topic>

**What it is:** <one-sentence description of the rule or mark>

**When to use it:**
- <most common use case>
- <second common use case>
- <third common use case, if relevant>

**Examples:**
- <correct usage> — <brief explanation>
- <correct usage> — <brief explanation>

**Common mistakes:**
- <wrong usage> -> <corrected version>
- <wrong usage> -> <corrected version>

**Quick tip:** <one memorable takeaway>
```

**Spanish format:**

```
## <tema>

**Que es:** <descripcion en una oracion de la regla o signo>

**Cuando se usa:**
- <caso de uso mas comun>
- <segundo caso de uso comun>
- <tercer caso de uso, si aplica>

**Ejemplos:**
- <uso correcto> — <breve explicacion>
- <uso correcto> — <breve explicacion>

**Errores comunes:**
- <uso incorrecto> -> <version corregida>
- <uso incorrecto> -> <version corregida>

**Consejo rapido:** <un dato memorable para recordar>
```

## Rules

- Be practical over exhaustive — focus on the 2-3 most useful things to know
- Use real-world examples, not textbook-sounding ones
- Always highlight common mistakes — that's where the most value is
- Keep the quick tip memorable and actionable
- **English lookups:** all output in English
- **Spanish lookups:** all output entirely in Spanish (labels, explanations, examples — everything)
- Do NOT save anything to a file — just display the result in the terminal
64 changes: 64 additions & 0 deletions plugins/learning/commands/vocab.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
description: Look up a word — definition, pronunciation, and simple example (English/Spanish)
argument-hint: "[es] <word>"
allowed-tools: WebSearch,WebFetch
model: haiku
---

# Vocabulary Lookup

Look up a word and display its definition, pronunciation, and a simple example. Supports English (default) and Spanish.

## Process

1. Extract the arguments. If no arguments were provided, ask the user what word they want to look up.

2. **Detect language:** Check if the first token is `es` (case-insensitive). If so, the language is **Spanish** and the word is everything after `es`. Otherwise, the language is **English** and the entire argument is the word.

3. **Search for the word:**

**English:** Use WebSearch to search for: `"<word>" definition pronunciation dictionary`
Then use WebFetch on the most relevant dictionary result (prefer Merriam-Webster, Dictionary.com, or Oxford) to get the full entry.

**Spanish:** Use WebSearch to search for: `"<word>" definicion pronunciacion diccionario site:dle.rae.es OR site:spanishdict.com OR site:wordreference.com`
Then use WebFetch on the most relevant result (prefer RAE, SpanishDict, or WordReference) to get the full entry.

4. **Format the output:**

**English format:**

```
## <word>

**Pronunciation:** /<phonetic spelling>/

**Part of speech:** <noun, verb, adjective, etc.>

**Definition:** <clear, concise definition — prefer the most common meaning>

**Example:** <a simple sentence a middle-schooler would understand>
```

**Spanish format:**

```
## <word>

**Pronunciacion:** /<transcripcion fonetica>/

**Categoria gramatical:** <sustantivo, verbo, adjetivo, etc.>

**Definicion:** <definicion clara y concisa — preferir el significado mas comun>

**Ejemplo:** <una oracion sencilla que un estudiante de secundaria entenderia>
```

## Rules

- Keep it short — one primary definition, one example
- If the word has multiple parts of speech, show the most common one
- The example sentence should be straightforward and relatable for a ~12 year old
- If the word is not found, say so clearly
- **English lookups:** all output in English
- **Spanish lookups:** all output entirely in Spanish (labels, definition, example — everything)
- Do NOT save anything to a file — just display the result in the terminal
4 changes: 2 additions & 2 deletions plugins/obsidian/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "arevlo:obsidian",
"description": "Capture screenshots and context to Obsidian Zettelkasten vault as fragment notes. Save external links to note tables.",
"version": "1.2.1"
"description": "Capture screenshots and context to Obsidian Zettelkasten vault as fragment notes. Save external links to note tables. Interactively study complex documents with Q&A. Add Confluence document summaries to project files.",
"version": "1.6.0"
}
93 changes: 41 additions & 52 deletions plugins/obsidian/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Obsidian Capture Plugin
# Obsidian Plugin

Capture screenshots and context directly to your Obsidian Zettelkasten vault as fragment notes.
Capture screenshots and context to your Obsidian Zettelkasten vault as fragment notes. Save external links to note tables. Interactively study complex documents with Q&A. Add Confluence document summaries to project files.

## Commands

Expand All @@ -13,32 +13,18 @@ Capture a screenshot with context and create a fragment note in your Obsidian va
/arevlo:obsidian:capture [category]

# Example:
/arevlo:obsidian:capture flow
/arevlo:obsidian:capture ai
```

**What it does:**
1. Analyzes any screenshot you've shared in the conversation
2. Prompts for category (flow, ai, personal, etc.) if not provided
2. Prompts for category if not provided
3. Asks for a topic-based title
4. Creates a `{category}/fragments/` subfolder if it doesn't exist
5. Copies the screenshot to `{category}/fragments/_attachments/{topic}.png`
6. Creates a fragment note with the screenshot embedded, your analysis, and any external links
7. Returns the path to the created note

**Example workflow:**
```
User: [Pastes screenshot from Slack]
https://life-in-flow.slack.com/archives/C123/p456

/arevlo:obsidian:capture flow

Claude: What topic should I use for the filename?
User: property-filters-discussion

Claude: ✓ Fragment note created: flow/fragments/property-filters-discussion.md
✓ Screenshot saved: flow/fragments/_attachments/property-filters-discussion.png
```

### `/arevlo:obsidian:save-link`

Save external links to an Obsidian note's external links table. Creates the note if it doesn't exist.
Expand All @@ -61,58 +47,62 @@ Save external links to an Obsidian note's external links table. Creates the note
6. Creates the note if it doesn't exist
7. Auto-generates a source tag from the URL domain (e.g., "source/anthropic")

**Example workflow:**
```
User: /arevlo:obsidian:save-link https://anthropic.com/research/constitutional-ai

Claude: What title/description should I use for this link?
User: Constitutional AI Research Paper
### `/arevlo:obsidian:study`

Claude: Where should I save this link?
User: ai/outlinks
Interactively break down and study complex documents (TDDs, specs, architecture docs) with Q&A, saving session notes to your Obsidian vault.

Claude: Any tags to add? (optional)
User: research, alignment
**Usage:**
```
/arevlo:obsidian:study [confluence-url or file-path]
```

Claude: Any notes or context? (optional)
User: Foundational paper on RLHF with AI feedback
**What it does:**
1. Fetches the document content (Confluence or local file)
2. Parses it into logical sections and presents an outline
3. Walks through each section interactively with summaries and Q&A
4. Tracks all questions and answers from the session
5. Generates a study session note with summaries, key points, Q&A, and takeaways
6. Saves the note to your Obsidian vault

Claude: ✓ Link saved to ai/outlinks
Title: Constitutional AI Research Paper
Tags: research, alignment, source/anthropic
```
### `/arevlo:obsidian:project-doc`

**External Links Table Format:**
The command creates/updates a table in your note with this structure:
```markdown
## External Links
Add a Confluence document summary (TDD, PRD, Design Doc, RFC, Spec) to a project file.

| Title | Tags | Link | Notes |
|-------|------|------|-------|
| Constitutional AI Research Paper | #research #alignment #source/anthropic | [Constitutional AI Research Paper](https://anthropic.com/research/constitutional-ai) | Foundational paper on RLHF with AI feedback |
**Usage:**
```
/arevlo:obsidian:project-doc [confluence-url] [optional:project-name]
```

**What it does:**
1. Fetches the Confluence page content and metadata
2. Auto-detects the document type (TDD, PRD, Design, RFC, Spec) from the title
3. Asks which platform section (Web/Mobile) and document status
4. Generates a one-line description, author attribution, and dense 3-6 sentence summary
5. Creates a new project file with the full template, or appends the section to an existing one

## Configuration

The plugin expects your Obsidian vault at:
```
/Users/arevlo/Library/Mobile Documents/com~apple~CloudDocs/zk
```
Configuration is stored in `~/.claude/obsidian-plugin.json`. On first use, any command will prompt you to set up your vault path.

To change this, edit the `VAULT_PATH` in `commands/capture.md`.
| Field | Used By | Description |
|-------|---------|-------------|
| `vault_path` | All commands | Absolute path to your Obsidian vault |
Comment on lines +85 to +89

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Align config docs with capture command behavior

This section says the vault path in ~/.claude/obsidian-plugin.json is used by all commands and that any command will prompt to set it up, but /arevlo:obsidian:capture still hardcodes VAULT_PATH in plugins/obsidian/commands/capture.md without reading the config. If a user follows this README and sets a custom vault path, capture will write to the hardcoded location or fail, so the documentation is misleading and the command won’t work as described. Either update capture to read the config or narrow the README claim to only the new commands.

Useful? React with 👍 / 👎.


To reconfigure, edit `~/.claude/obsidian-plugin.json` directly.

## Installation

This plugin is part of the `claude-code-workflows` marketplace.

1. Make sure your `~/.claude.json` includes this marketplace:
1. Add the marketplace to `~/.claude.json`:
```json
{
"extraKnownMarketplaces": {
"claude-code-workflows": {
"source": {
"source": "directory",
"path": "/Users/arevlo/Desktop/personal-repos/claude-code-workflows"
"source": "github",
"owner": "arevlo",
"repo": "claude-code-workflows"
}
}
}
Expand All @@ -132,9 +122,9 @@ This plugin is part of the `claude-code-workflows` marketplace.

## Requirements

- **Obsidian MCP server** must be configured and running
- Screenshots must be pasted into Claude Code (they're auto-cached in `~/.claude/image-cache/`)
- Your Obsidian vault must be accessible at the configured path
- For `/study` and `/project-doc`: Atlassian MCP server for Confluence access

## Fragment Workflow

Expand All @@ -143,9 +133,8 @@ Fragments are temporary captures in the Zettelkasten method:
2. **Process** - Review and convert to atomic primitives
3. **Connect** - Link primitives to build knowledge graph

Use `mcp__obsidian-zettelkasten__process_fragment` to convert fragments to primitives later.

## Version History

- **1.6.0** - Added `/arevlo:obsidian:study` and `/arevlo:obsidian:project-doc` commands
- **1.2.0** - Added `/arevlo:obsidian:save-link` command for saving external links to notes
- **1.0.0** - Initial release with screenshot capture to fragment notes
Loading