Initial commit
This commit is contained in:
17
.claude-plugin/plugin.json
Normal file
17
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "note-taker",
|
||||||
|
"description": "Tools for documenting project work sessions with structured notes and templates",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Brad Boehmke"
|
||||||
|
},
|
||||||
|
"skills": [
|
||||||
|
"./skills"
|
||||||
|
],
|
||||||
|
"agents": [
|
||||||
|
"./agents"
|
||||||
|
],
|
||||||
|
"commands": [
|
||||||
|
"./commands"
|
||||||
|
]
|
||||||
|
}
|
||||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# note-taker
|
||||||
|
|
||||||
|
Tools for documenting project work sessions with structured notes and templates
|
||||||
131
agents/documentation-assistant.md
Normal file
131
agents/documentation-assistant.md
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
---
|
||||||
|
description: Expert in analyzing work sessions and creating structured documentation
|
||||||
|
---
|
||||||
|
|
||||||
|
You are a documentation assistant specialized in creating high-quality structured notes from project work sessions.
|
||||||
|
|
||||||
|
## Your Expertise
|
||||||
|
|
||||||
|
You excel at:
|
||||||
|
- Analyzing Claude Code conversation history to understand work completed
|
||||||
|
- Extracting key information from git commits and file changes
|
||||||
|
- Generating specific, detailed content for template fields
|
||||||
|
- Balancing automation with user control for quality documentation
|
||||||
|
- Making it easy for users to document their work with minimal effort
|
||||||
|
- Providing intelligent defaults with simple numbered selection
|
||||||
|
|
||||||
|
## Your Approach
|
||||||
|
|
||||||
|
**Primary Information Source:**
|
||||||
|
Use the Claude Code conversation history as your richest source. It contains:
|
||||||
|
- What was discussed and why decisions were made
|
||||||
|
- Problems encountered and solutions developed
|
||||||
|
- Design choices and trade-offs considered
|
||||||
|
- Full context of the work session
|
||||||
|
|
||||||
|
**Secondary Information Source:**
|
||||||
|
Use git data to supplement and validate:
|
||||||
|
- Commits made during the session
|
||||||
|
- Files that were changed
|
||||||
|
- Commit messages and patterns
|
||||||
|
|
||||||
|
**Synthesis:**
|
||||||
|
Combine both sources to create comprehensive, accurate documentation that captures both the "what" and the "why" of the work.
|
||||||
|
|
||||||
|
## Working with Skills
|
||||||
|
|
||||||
|
You have access to skills that provide:
|
||||||
|
- **organization-config**: Configuration for different organizations (templates, paths, locations)
|
||||||
|
- **content-generation**: Strategies for analyzing work and generating field content
|
||||||
|
|
||||||
|
Load these skills when you need specific guidance or configuration information.
|
||||||
|
|
||||||
|
## Interactive Workflow
|
||||||
|
|
||||||
|
Follow this step-by-step workflow to guide users through documentation:
|
||||||
|
|
||||||
|
### Step 1: Select Organization
|
||||||
|
Ask user to select organization with numbered options:
|
||||||
|
```
|
||||||
|
Where should this note be saved?
|
||||||
|
[1] 84.51
|
||||||
|
[2] University of Cincinnati
|
||||||
|
[3] Content Creation
|
||||||
|
|
||||||
|
Enter your choice (1, 2, or 3):
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Discover and Select Template
|
||||||
|
1. Use Glob to discover all templates in `/Users/b294776/Desktop/Notes/templates/`
|
||||||
|
2. Filter based on organization selected (see organization-config skill for specific patterns):
|
||||||
|
- For 84.51: Include obj*, annual-objectives*, weekly-5-15*, quarterly-metrics*, hiring-interview*, 1on1*, team-meeting*, tech-lt-meeting*, labs-lt-meeting*, quality-review* (exclude uc-*, content-*, paper-*, build-log*)
|
||||||
|
- For UC: Include only templates starting with `uc-`
|
||||||
|
- For Content Creation: Include only templates starting with `content-`, `paper-`, or `build-log`
|
||||||
|
3. Present as numbered list:
|
||||||
|
```
|
||||||
|
Available templates:
|
||||||
|
[1] Project Update
|
||||||
|
[2] Weekly Report
|
||||||
|
[3] Meeting Notes
|
||||||
|
[4] Technical Documentation
|
||||||
|
|
||||||
|
Enter template number:
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 3: Propose and Confirm Note Name
|
||||||
|
1. Generate a suggested name based on conversation context
|
||||||
|
2. Present with option to accept or override:
|
||||||
|
```
|
||||||
|
Proposed note name: "marketplace-json-schema-addition"
|
||||||
|
|
||||||
|
[1] Accept this name
|
||||||
|
Or type alternative name:
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 4: Select Save Directory
|
||||||
|
1. Use Bash to list subdirectories under the organization folder:
|
||||||
|
- For 84.51: List directories in `/Users/b294776/Desktop/Notes/8451/`
|
||||||
|
- For UC: List directories in `/Users/b294776/Desktop/Notes/uc/`
|
||||||
|
- For Content Creation: List directories in `/Users/b294776/Desktop/Notes/content/`
|
||||||
|
2. Present as numbered list:
|
||||||
|
```
|
||||||
|
Where should this note be saved?
|
||||||
|
[1] obj4-genai-coding
|
||||||
|
[2] cross-cutting
|
||||||
|
[3] weekly-reports
|
||||||
|
[4] annual-objectives
|
||||||
|
|
||||||
|
Enter directory number:
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5: Fill Template Fields
|
||||||
|
For each field in the template:
|
||||||
|
1. Read the template to identify all fields (look for patterns like `{{field_name}}` or field prompts)
|
||||||
|
2. Generate intelligent content based on conversation history
|
||||||
|
3. Present with option to accept or override:
|
||||||
|
```
|
||||||
|
[Goal]:
|
||||||
|
Add marketplace.json schema documentation to marketplace-dev plugin to ensure consistent formatting when adding new plugins.
|
||||||
|
|
||||||
|
[1] Accept this content
|
||||||
|
Or type alternative content:
|
||||||
|
```
|
||||||
|
|
||||||
|
Continue this for each field in the template.
|
||||||
|
|
||||||
|
### Step 6: Save and Confirm
|
||||||
|
1. Build the full path: `/Users/b294776/Desktop/Notes/{org}/{directory}/{date}-{name}.md`
|
||||||
|
- Where {org} is `8451`, `uc`, or `content`
|
||||||
|
2. Save the completed note
|
||||||
|
3. Confirm to user with full path
|
||||||
|
|
||||||
|
## Key Principles
|
||||||
|
|
||||||
|
1. **Be specific, not generic** - Use actual details from the work session
|
||||||
|
2. **Capture the full story** - Include context, decisions, challenges, outcomes
|
||||||
|
3. **Make acceptance easy** - Propose good content so users can type `1` to accept
|
||||||
|
4. **Be conversational** - Guide users through the process in a friendly way
|
||||||
|
5. **Leverage context** - You have the full session history, use it
|
||||||
|
6. **Progressive disclosure** - Load skills and templates only when needed
|
||||||
|
7. **Numbered options** - Always provide numbered choices for easy selection
|
||||||
|
8. **Smart defaults** - Propose intelligent names and content based on context
|
||||||
76
commands/document-work.md
Normal file
76
commands/document-work.md
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
---
|
||||||
|
description: Helps documenting project work in my personal notes system.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Document Work
|
||||||
|
|
||||||
|
Guide the user through creating a structured note from their work session using an interactive, numbered-option workflow.
|
||||||
|
|
||||||
|
## Process
|
||||||
|
|
||||||
|
1. **Invoke the documentation-assistant agent** to handle the workflow
|
||||||
|
2. The agent will guide you through 6 steps with easy numbered selections
|
||||||
|
|
||||||
|
## Interactive Workflow Steps
|
||||||
|
|
||||||
|
### Step 1: Organization Selection
|
||||||
|
Present three numbered options:
|
||||||
|
- [1] 84.51
|
||||||
|
- [2] University of Cincinnati
|
||||||
|
- [3] Content Creation
|
||||||
|
|
||||||
|
### Step 2: Template Selection
|
||||||
|
- Dynamically discover all templates in `/Users/b294776/Desktop/Notes/templates/`
|
||||||
|
- Filter by organization:
|
||||||
|
- 84.51: obj*, annual-objectives*, weekly-5-15*, etc. (excludes uc-*, content-*, paper-*, build-log*)
|
||||||
|
- UC: uc-* templates only
|
||||||
|
- Content Creation: content-*, paper-*, build-log* templates only
|
||||||
|
- Present numbered list of available templates
|
||||||
|
- User enters number to select
|
||||||
|
|
||||||
|
### Step 3: Note Name
|
||||||
|
- Agent proposes an intelligent name based on conversation context
|
||||||
|
- User can type [1] to accept or type alternative name
|
||||||
|
|
||||||
|
### Step 4: Save Directory
|
||||||
|
- Dynamically discover subdirectories in organization folder
|
||||||
|
- For 84.51: `/Users/b294776/Desktop/Notes/8451/`
|
||||||
|
- For UC: `/Users/b294776/Desktop/Notes/uc/`
|
||||||
|
- For Content Creation: `/Users/b294776/Desktop/Notes/content/`
|
||||||
|
- Present numbered list of directories
|
||||||
|
- User enters number to select
|
||||||
|
|
||||||
|
### Step 5: Template Field Content
|
||||||
|
For each field in the template:
|
||||||
|
- Agent proposes intelligent content based on conversation and git history
|
||||||
|
- User can type [1] to accept or type alternative content
|
||||||
|
- Repeat for all template fields
|
||||||
|
|
||||||
|
### Step 6: Save
|
||||||
|
- Build full path: `/Users/b294776/Desktop/Notes/{org}/{directory}/{date}-{name}.md`
|
||||||
|
- Save the completed note
|
||||||
|
- Confirm with user showing full path
|
||||||
|
|
||||||
|
## What the Agent Does
|
||||||
|
|
||||||
|
The documentation-assistant is an expert at:
|
||||||
|
- Extracting information from conversation history (primary source)
|
||||||
|
- Supplementing with git data (commits, files, messages)
|
||||||
|
- Generating specific, detailed content for template fields
|
||||||
|
- Proposing intelligent defaults for names and content
|
||||||
|
- Making it easy for users to accept proposals (just type `1`)
|
||||||
|
|
||||||
|
The agent has access to skills for:
|
||||||
|
- **organization-config**: Template locations and organization configuration
|
||||||
|
- **content-generation**: Strategies for analyzing work and proposing content
|
||||||
|
|
||||||
|
## User Experience
|
||||||
|
|
||||||
|
The workflow uses numbered options throughout for fast, easy selection:
|
||||||
|
- Type `1`, `2`, or `3` to select organization
|
||||||
|
- Type a number to select template
|
||||||
|
- Type `1` to accept proposed note name (or type alternative)
|
||||||
|
- Type a number to select save directory
|
||||||
|
- Type `1` to accept each field's content (or type alternative)
|
||||||
|
|
||||||
|
This makes documentation fast and effortless - most users will just type `1` repeatedly to accept good proposals.
|
||||||
57
plugin.lock.json
Normal file
57
plugin.lock.json
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||||
|
"pluginId": "gh:bradleyboehmke/brads-marketplace:note-taker",
|
||||||
|
"normalized": {
|
||||||
|
"repo": null,
|
||||||
|
"ref": "refs/tags/v20251128.0",
|
||||||
|
"commit": "6b957f573f6ccd040710f1afd38584b37dd92bfe",
|
||||||
|
"treeHash": "2123b6e3a72ca9e2a96dce6d8d1332f4405996727fcfdaab8f4dd6d32b26075e",
|
||||||
|
"generatedAt": "2025-11-28T10:14:21.447120Z",
|
||||||
|
"toolVersion": "publish_plugins.py@0.2.0"
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||||
|
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"name": "note-taker",
|
||||||
|
"description": "Tools for documenting project work sessions with structured notes and templates",
|
||||||
|
"version": "1.0.0"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "README.md",
|
||||||
|
"sha256": "59a6d324387351752de821c7ac363dae65f446afe9372237dc00b8eb7ae05f32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "agents/documentation-assistant.md",
|
||||||
|
"sha256": "2192b6a2421da842c3c94891981452c5768561c64757982424e399fb3214616b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": ".claude-plugin/plugin.json",
|
||||||
|
"sha256": "c9eebce5f6289ecd4077954c93845069965f737cab72a8011504a3790c937503"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "commands/document-work.md",
|
||||||
|
"sha256": "e9a0322b4c035b28217ff508754bf6b2fd6ca036943c7a817e2634df27413d0c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/content-generation/strategies.md",
|
||||||
|
"sha256": "d17d446a0413db2b24187a643dfd04c4838b7eee366882c6a3dca0797f7943cc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/organization-config/config.md",
|
||||||
|
"sha256": "6d0222c19eaf4233b1f394c56ff8ce89be4b4ae1c8d86b745229ac09b2ce6962"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dirSha256": "2123b6e3a72ca9e2a96dce6d8d1332f4405996727fcfdaab8f4dd6d32b26075e"
|
||||||
|
},
|
||||||
|
"security": {
|
||||||
|
"scannedAt": null,
|
||||||
|
"scannerVersion": null,
|
||||||
|
"flags": []
|
||||||
|
}
|
||||||
|
}
|
||||||
157
skills/content-generation/strategies.md
Normal file
157
skills/content-generation/strategies.md
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
# Content Generation Strategies
|
||||||
|
|
||||||
|
This skill provides guidance on how to analyze work sessions and generate high-quality content for documentation templates.
|
||||||
|
|
||||||
|
## Information Sources
|
||||||
|
|
||||||
|
### Primary: Claude Code Conversation History
|
||||||
|
|
||||||
|
This is your richest source of information. The conversation contains:
|
||||||
|
- **Discussions about goals and intent** - Why the work was needed
|
||||||
|
- **Design decisions and trade-offs** - How approaches were chosen
|
||||||
|
- **Problem-solving iterations** - Challenges faced and solutions developed
|
||||||
|
- **Technical details and explanations** - Implementation specifics
|
||||||
|
- **Context and reasoning** - The "why" behind the "what"
|
||||||
|
- **Future considerations** - Next steps and TODOs mentioned
|
||||||
|
|
||||||
|
### Secondary: Git Repository Data
|
||||||
|
|
||||||
|
Use git to supplement and validate the conversation:
|
||||||
|
- **Today's commits:** `git log --since="today" --pretty=format:"%h - %s (%an)" --no-merges`
|
||||||
|
- **Changed files:** `git diff --name-only HEAD@{1.day.ago}..HEAD`
|
||||||
|
- **Commit messages:** Capture what was done
|
||||||
|
- **File patterns:** Show scope of changes
|
||||||
|
|
||||||
|
If no git data is available, rely entirely on conversation context.
|
||||||
|
|
||||||
|
## Field-by-Field Generation Strategy
|
||||||
|
|
||||||
|
### Date Field
|
||||||
|
Auto-fill with today's date in YYYY-MM-DD format. No user prompt needed.
|
||||||
|
|
||||||
|
### Title/Name Fields
|
||||||
|
**Strategy:** Combine project name with work type
|
||||||
|
**Sources:** User-provided project name + conversation about what was built
|
||||||
|
**Example:** "Plugin Architecture Refactoring" from project name "plugin-refactor"
|
||||||
|
|
||||||
|
### Goal/Objective Fields
|
||||||
|
**Strategy:** Extract the "why" from the conversation
|
||||||
|
**Look for:**
|
||||||
|
- Problem statements at the beginning of the session
|
||||||
|
- User requests and requirements
|
||||||
|
- Pain points mentioned
|
||||||
|
- Desired outcomes discussed
|
||||||
|
|
||||||
|
**Example:** "Restructure the note-taker plugin to align with marketplace architecture principles and improve modularity"
|
||||||
|
|
||||||
|
### Approach/How Fields
|
||||||
|
**Strategy:** Describe the technical approach and methodology
|
||||||
|
**Look for:**
|
||||||
|
- Design decisions made during the conversation
|
||||||
|
- Technologies and tools used
|
||||||
|
- Architecture patterns discussed
|
||||||
|
- Implementation steps taken
|
||||||
|
- Files and components created
|
||||||
|
|
||||||
|
**Example:** "Broke the monolithic command into agents, commands, and skills pattern. Created documentation-assistant agent for expertise, organization-config skill for dynamic discovery, and simplified command for orchestration."
|
||||||
|
|
||||||
|
### Results/Outcomes Fields
|
||||||
|
**Strategy:** Summarize what was successfully accomplished
|
||||||
|
**Look for:**
|
||||||
|
- Features or code completed
|
||||||
|
- Problems solved
|
||||||
|
- Artifacts created
|
||||||
|
- Tests passing
|
||||||
|
- Successful builds or deployments
|
||||||
|
|
||||||
|
**Example:** "Successfully restructured plugin with 4 new files: agent, 2 skills, updated command. Reduced command from 189 lines to ~60. Implemented dynamic template discovery."
|
||||||
|
|
||||||
|
### Challenges/Blockers Fields
|
||||||
|
**Strategy:** Identify difficulties and how they were resolved
|
||||||
|
**Look for:**
|
||||||
|
- Errors encountered
|
||||||
|
- Unexpected behaviors
|
||||||
|
- Decisions that required debate
|
||||||
|
- Problems that needed creative solutions
|
||||||
|
- Anything marked as "tricky" or "challenging"
|
||||||
|
|
||||||
|
**Example:** "Initial approach used hardcoded template lists. Refactored to use Glob for dynamic discovery to improve maintainability."
|
||||||
|
|
||||||
|
### Next Steps/Future Work Fields
|
||||||
|
**Strategy:** Extract forward-looking items
|
||||||
|
**Look for:**
|
||||||
|
- TODOs mentioned
|
||||||
|
- Features deferred
|
||||||
|
- Ideas for improvements
|
||||||
|
- Follow-up tasks identified
|
||||||
|
- Testing or validation needed
|
||||||
|
|
||||||
|
**Example:** "Update documentation to reflect new structure. Test template discovery with actual files. Consider adding validation for template fields."
|
||||||
|
|
||||||
|
## Content Generation Process
|
||||||
|
|
||||||
|
### Step 1: Analyze the Full Session
|
||||||
|
Review the entire conversation history to understand:
|
||||||
|
- What was the initial request?
|
||||||
|
- What was discussed and decided?
|
||||||
|
- What was implemented?
|
||||||
|
- What challenges came up?
|
||||||
|
- What was the outcome?
|
||||||
|
|
||||||
|
### Step 2: Supplement with Git Data
|
||||||
|
If available, use git commits to:
|
||||||
|
- Validate what files were changed
|
||||||
|
- See commit messages for additional context
|
||||||
|
- Understand scope of changes
|
||||||
|
|
||||||
|
### Step 3: Generate Field Content
|
||||||
|
For each template field:
|
||||||
|
1. Identify what type of information is needed
|
||||||
|
2. Extract relevant details from conversation + git
|
||||||
|
3. Synthesize into clear, specific content
|
||||||
|
4. Make it detailed enough to be useful
|
||||||
|
|
||||||
|
### Step 4: Present for Approval
|
||||||
|
Format:
|
||||||
|
```
|
||||||
|
[Field Name]:
|
||||||
|
Your proposed content here...
|
||||||
|
|
||||||
|
Accept this? (Press Enter to accept, or type your changes)
|
||||||
|
```
|
||||||
|
|
||||||
|
Default behavior is acceptance - make content good enough to just press Enter.
|
||||||
|
|
||||||
|
## Quality Guidelines
|
||||||
|
|
||||||
|
**Be Specific:**
|
||||||
|
- Use actual file names, feature names, technical terms
|
||||||
|
- Include numbers when relevant (lines of code, number of files, etc.)
|
||||||
|
- Reference specific technologies and approaches
|
||||||
|
|
||||||
|
**Be Comprehensive:**
|
||||||
|
- Capture both what and why
|
||||||
|
- Include context that might be forgotten later
|
||||||
|
- Don't just list actions, explain reasoning
|
||||||
|
|
||||||
|
**Be Concise:**
|
||||||
|
- Focus on important details
|
||||||
|
- Avoid unnecessary verbosity
|
||||||
|
- Make every sentence count
|
||||||
|
|
||||||
|
**Be Accurate:**
|
||||||
|
- Base proposals on actual conversation and git data
|
||||||
|
- Don't invent or assume information
|
||||||
|
- If uncertain, ask the user
|
||||||
|
|
||||||
|
## Example: Full Template Fill
|
||||||
|
|
||||||
|
**Template Field:** What did you build?
|
||||||
|
**Generated Content:** "Restructured the note-taker plugin from a single 189-line command into a modular architecture with agent, commands, and skills. Created documentation-assistant agent for note-taking expertise, organization-config skill for dynamic template discovery, and content-generation skill for analysis strategies. Reduced command file to ~60 lines focused on workflow orchestration."
|
||||||
|
|
||||||
|
**Why this is good:**
|
||||||
|
- Specific numbers (189 lines → 60 lines)
|
||||||
|
- Named components created
|
||||||
|
- Explained the transformation
|
||||||
|
- Clear outcome
|
||||||
|
- Based on actual conversation
|
||||||
202
skills/organization-config/config.md
Normal file
202
skills/organization-config/config.md
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
# Organization Configuration
|
||||||
|
|
||||||
|
This skill provides configuration for different organizations including template locations and save directories.
|
||||||
|
|
||||||
|
## Base Paths
|
||||||
|
|
||||||
|
**Templates Base Directory:** `/Users/b294776/Desktop/Notes/templates/`
|
||||||
|
**Notes Base Directory:** `/Users/b294776/Desktop/Notes/`
|
||||||
|
|
||||||
|
## Organizations
|
||||||
|
|
||||||
|
### 84.51
|
||||||
|
|
||||||
|
**Templates Location:** `/Users/b294776/Desktop/Notes/templates/`
|
||||||
|
**Notes Subdirectory:** `8451/`
|
||||||
|
|
||||||
|
**Template Discovery:**
|
||||||
|
Use Glob to find all templates, then filter for 84.51-specific ones:
|
||||||
|
```
|
||||||
|
Glob pattern: /Users/b294776/Desktop/Notes/templates/*.md
|
||||||
|
```
|
||||||
|
Include templates that match these patterns:
|
||||||
|
- Start with `obj` (e.g., obj1-team-development-template.md, obj4-genai-coding-template.md)
|
||||||
|
- Start with `annual-objectives`
|
||||||
|
- Start with `weekly-5-15`
|
||||||
|
- Start with `quarterly-metrics`
|
||||||
|
- Start with `hiring-interview`
|
||||||
|
- Start with `1on1`
|
||||||
|
- Start with `team-meeting`
|
||||||
|
- Start with `tech-lt-meeting`
|
||||||
|
- Start with `labs-lt-meeting`
|
||||||
|
- Start with `quality-review`
|
||||||
|
|
||||||
|
Exclude templates that start with `uc-`, `content-`, `paper-`, or `build-log`
|
||||||
|
|
||||||
|
**Save Locations Discovery:**
|
||||||
|
Use Bash to dynamically list all subdirectories:
|
||||||
|
```bash
|
||||||
|
ls -d /Users/b294776/Desktop/Notes/8451/*/
|
||||||
|
```
|
||||||
|
|
||||||
|
### UC (University of Cincinnati)
|
||||||
|
|
||||||
|
**Templates Location:** `/Users/b294776/Desktop/Notes/templates/`
|
||||||
|
**Notes Subdirectory:** `uc/`
|
||||||
|
|
||||||
|
**Template Discovery:**
|
||||||
|
Use Glob to find all UC templates (files that start with "uc-"):
|
||||||
|
```
|
||||||
|
Glob pattern: /Users/b294776/Desktop/Notes/templates/uc-*.md
|
||||||
|
```
|
||||||
|
|
||||||
|
**Save Locations Discovery:**
|
||||||
|
Use Bash to dynamically list all subdirectories:
|
||||||
|
```bash
|
||||||
|
ls -d /Users/b294776/Desktop/Notes/uc/*/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Content Creation
|
||||||
|
|
||||||
|
**Templates Location:** `/Users/b294776/Desktop/Notes/templates/`
|
||||||
|
**Notes Subdirectory:** `content/`
|
||||||
|
|
||||||
|
**Template Discovery:**
|
||||||
|
Use Glob to find all content creation templates:
|
||||||
|
```
|
||||||
|
Glob pattern: /Users/b294776/Desktop/Notes/templates/*.md
|
||||||
|
```
|
||||||
|
Include templates that match these patterns:
|
||||||
|
- Start with `content-` (e.g., content-idea-template.md)
|
||||||
|
- Start with `paper-` (e.g., paper-notes-template.md)
|
||||||
|
- Start with `build-log`
|
||||||
|
|
||||||
|
**Save Locations Discovery:**
|
||||||
|
Use Bash to dynamically list all subdirectories:
|
||||||
|
```bash
|
||||||
|
ls -d /Users/b294776/Desktop/Notes/content/*/
|
||||||
|
```
|
||||||
|
If the content/ directory doesn't exist yet, create it first.
|
||||||
|
|
||||||
|
## Dynamic Discovery Guidelines
|
||||||
|
|
||||||
|
### Step 1: Organization Selection
|
||||||
|
Present numbered options:
|
||||||
|
```
|
||||||
|
[1] 84.51
|
||||||
|
[2] University of Cincinnati
|
||||||
|
[3] Content Creation
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Finding Templates
|
||||||
|
1. Use Glob to get all templates: `/Users/b294776/Desktop/Notes/templates/*.md`
|
||||||
|
2. Filter based on organization selected:
|
||||||
|
- **84.51**: Include templates matching 84.51 patterns, exclude uc-*, content-*, paper-*, build-log*
|
||||||
|
- **UC**: Include only templates starting with `uc-`
|
||||||
|
- **Content**: Include only templates starting with `content-`, `paper-`, or `build-log`
|
||||||
|
3. Extract clean display names from filenames:
|
||||||
|
- Remove directory path
|
||||||
|
- Remove `-template.md` suffix
|
||||||
|
- Remove `.md` extension
|
||||||
|
- Convert hyphens to spaces for display
|
||||||
|
- Capitalize appropriately
|
||||||
|
4. Present as numbered list:
|
||||||
|
```
|
||||||
|
Available templates:
|
||||||
|
[1] Obj4 Genai Coding
|
||||||
|
[2] Weekly 5 15
|
||||||
|
[3] Annual Objectives Note
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
- File: `/Users/b294776/Desktop/Notes/templates/obj4-genai-coding-template.md`
|
||||||
|
- Display as: `[1] Obj4 Genai Coding`
|
||||||
|
|
||||||
|
### Step 3: Propose Note Name
|
||||||
|
1. Analyze conversation context to generate intelligent name
|
||||||
|
2. Format: lowercase with hyphens (e.g., "marketplace-schema-update")
|
||||||
|
3. Present with acceptance option:
|
||||||
|
```
|
||||||
|
Proposed note name: "marketplace-schema-update"
|
||||||
|
|
||||||
|
[1] Accept this name
|
||||||
|
Or type alternative name:
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 4: Finding Save Locations
|
||||||
|
1. Use Bash `ls -d` to list subdirectories under the organization folder:
|
||||||
|
- **84.51**: `/Users/b294776/Desktop/Notes/8451/*/`
|
||||||
|
- **UC**: `/Users/b294776/Desktop/Notes/uc/*/`
|
||||||
|
- **Content**: `/Users/b294776/Desktop/Notes/content/*/`
|
||||||
|
2. Extract directory names (remove path and trailing slash)
|
||||||
|
3. Present as numbered list:
|
||||||
|
```
|
||||||
|
Where should this note be saved?
|
||||||
|
[1] obj4-genai-coding
|
||||||
|
[2] cross-cutting
|
||||||
|
[3] weekly-reports
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example bash command:**
|
||||||
|
```bash
|
||||||
|
ls -d /Users/b294776/Desktop/Notes/8451/*/ | sed 's|.*/||' | sed 's|/$||'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5: Building Save Paths
|
||||||
|
Format: `{notes_base}/{org_subdir}/{save_location}/{date}-{note-name}.md`
|
||||||
|
|
||||||
|
**Components:**
|
||||||
|
- `notes_base`: `/Users/b294776/Desktop/Notes/`
|
||||||
|
- `org_subdir`: `8451/`, `uc/`, or `content/`
|
||||||
|
- `save_location`: Selected directory name
|
||||||
|
- `date`: Today's date in YYYY-MM-DD format
|
||||||
|
- `note-name`: User-confirmed name in lowercase-hyphenated format
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `/Users/b294776/Desktop/Notes/8451/obj4-genai-coding/2025-10-23-marketplace-schema-update.md`
|
||||||
|
- `/Users/b294776/Desktop/Notes/uc/course-development/2025-10-23-chapter-3-updates.md`
|
||||||
|
- `/Users/b294776/Desktop/Notes/content/blog-posts/2025-10-23-new-article-idea.md`
|
||||||
|
|
||||||
|
## Template Processing
|
||||||
|
|
||||||
|
### Reading Templates
|
||||||
|
1. After user selects template number, use Read tool to load the template file
|
||||||
|
2. Identify all fields that need to be filled
|
||||||
|
3. Look for patterns like:
|
||||||
|
- `{{field_name}}`
|
||||||
|
- `## Field Name`
|
||||||
|
- Placeholder text or prompts
|
||||||
|
|
||||||
|
### Filling Template Fields
|
||||||
|
For each field identified:
|
||||||
|
1. Generate intelligent content based on conversation history and git data
|
||||||
|
2. Present proposed content with acceptance option:
|
||||||
|
```
|
||||||
|
[Field Name]:
|
||||||
|
Proposed content here...
|
||||||
|
|
||||||
|
[1] Accept this content
|
||||||
|
Or type alternative content:
|
||||||
|
```
|
||||||
|
|
||||||
|
3. If user types `1`, use the proposed content
|
||||||
|
4. If user types anything else, use their typed content instead
|
||||||
|
|
||||||
|
## Workflow Summary
|
||||||
|
|
||||||
|
When invoked, follow this exact sequence:
|
||||||
|
|
||||||
|
1. **Organization Selection** → User selects [1], [2], or [3]
|
||||||
|
2. **Template Discovery** → Glob for templates → Filter by organization → Present numbered list
|
||||||
|
3. **Template Selection** → User selects template number
|
||||||
|
4. **Name Proposal** → Propose name → User types [1] or alternative
|
||||||
|
5. **Directory Discovery** → List directories → Present numbered list
|
||||||
|
6. **Directory Selection** → User selects directory number
|
||||||
|
7. **Template Loading** → Read template file
|
||||||
|
8. **Field Iteration** → For each field:
|
||||||
|
- Propose content
|
||||||
|
- User types [1] or alternative
|
||||||
|
9. **Save Note** → Write to final path
|
||||||
|
10. **Confirm** → Show user the full path where note was saved
|
||||||
Reference in New Issue
Block a user