Skip to content

Conversation

@jumski
Copy link
Contributor

@jumski jumski commented Nov 5, 2025

Refactored note management scripts to use a consistent header-first output
format and added AI summarization capability for quick note overviews.

Key changes:

  1. Standardized script output format:

    • All scripts (search-notes.sh, list-titles.sh) now output header first
    • Data rows follow (empty if no results)
    • Removed verbose "Found N notes" messages for cleaner piping
    • Header-only output clearly indicates no results
  2. Added summarize-notes.sh:

    • Pipes into search/list commands to add AI summaries
    • Uses GNU parallel + aichat for fast parallel processing
    • Adds SUMMARY column to help identify notes without reading full content
    • Detects header line (line 1) and appends "| SUMMARY" column
    • Processes data rows (line 2+) with AI model to generate summaries
  3. Reorganized skill structure:

    • Moved shared scripts to .claude/skills/_shared/notes/
    • Split monolithic idea-refine into focused skills:
      • note-capture: Save conversation context to topic notes
      • note-find: Search for notes with optional AI summaries
      • note-list: List topics or notes with optional AI summaries
      • note-organize: Archive/refine notes with confirmation prompts
      • note-overview: Summarize all notes in a topic
      • note-refine: Iteratively edit and improve notes
    • Added shared documentation (notes-layout.md, topics.md)
  4. Updated skill documentation:

    • All note-* skills now mention summarize-notes.sh capability
    • Added tips on when to use summarization (multiple unclear results)
    • Consistent patterns using AskUserQuestion for confirmations
    • Clear examples of piping: list-titles.sh topic/ | summarize-notes.sh

Benefits:

  • Cleaner script output for reliable piping
  • Fast AI summaries help disambiguate similar notes
  • Modular skills with clear responsibilities
  • Better UX with confirmation prompts before bulk operations

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

Refactored note management scripts to use a consistent header-first output
format and added AI summarization capability for quick note overviews.

Key changes:

1. Standardized script output format:
   - All scripts (search-notes.sh, list-titles.sh) now output header first
   - Data rows follow (empty if no results)
   - Removed verbose "Found N notes" messages for cleaner piping
   - Header-only output clearly indicates no results

2. Added summarize-notes.sh:
   - Pipes into search/list commands to add AI summaries
   - Uses GNU parallel + aichat for fast parallel processing
   - Adds SUMMARY column to help identify notes without reading full content
   - Detects header line (line 1) and appends "| SUMMARY" column
   - Processes data rows (line 2+) with AI model to generate summaries

3. Reorganized skill structure:
   - Moved shared scripts to .claude/skills/_shared/notes/
   - Split monolithic idea-refine into focused skills:
     * note-capture: Save conversation context to topic notes
     * note-find: Search for notes with optional AI summaries
     * note-list: List topics or notes with optional AI summaries
     * note-organize: Archive/refine notes with confirmation prompts
     * note-overview: Summarize all notes in a topic
     * note-refine: Iteratively edit and improve notes
   - Added shared documentation (notes-layout.md, topics.md)

4. Updated skill documentation:
   - All note-* skills now mention summarize-notes.sh capability
   - Added tips on when to use summarization (multiple unclear results)
   - Consistent patterns using AskUserQuestion for confirmations
   - Clear examples of piping: `list-titles.sh topic/ | summarize-notes.sh`

Benefits:
- Cleaner script output for reliable piping
- Fast AI summaries help disambiguate similar notes
- Modular skills with clear responsibilities
- Better UX with confirmation prompts before bulk operations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@changeset-bot
Copy link

changeset-bot bot commented Nov 5, 2025

⚠️ No Changeset found

Latest commit: 164c7b1

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@graphite-app
Copy link
Contributor

graphite-app bot commented Nov 5, 2025

Merge activity

  • Nov 5, 11:26 AM UTC: jumski added this pull request to the Graphite merge queue.
  • Nov 5, 11:26 AM UTC: CI is running for this pull request on a draft pull request (#317) due to your merge queue CI optimization settings.
  • Nov 5, 11:27 AM UTC: Merged by the Graphite merge queue via draft PR: #317.

Copy link
Contributor Author

jumski commented Nov 5, 2025


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • merge:queue - adds this PR to the back of the merge queue
  • hotfix:queue - for urgent hot fixes, skip the queue and merge this PR next

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

graphite-app bot pushed a commit that referenced this pull request Nov 5, 2025
#316)

Refactored note management scripts to use a consistent header-first output
format and added AI summarization capability for quick note overviews.

Key changes:

1. Standardized script output format:
   - All scripts (search-notes.sh, list-titles.sh) now output header first
   - Data rows follow (empty if no results)
   - Removed verbose "Found N notes" messages for cleaner piping
   - Header-only output clearly indicates no results

2. Added summarize-notes.sh:
   - Pipes into search/list commands to add AI summaries
   - Uses GNU parallel + aichat for fast parallel processing
   - Adds SUMMARY column to help identify notes without reading full content
   - Detects header line (line 1) and appends "| SUMMARY" column
   - Processes data rows (line 2+) with AI model to generate summaries

3. Reorganized skill structure:
   - Moved shared scripts to .claude/skills/_shared/notes/
   - Split monolithic idea-refine into focused skills:
     * note-capture: Save conversation context to topic notes
     * note-find: Search for notes with optional AI summaries
     * note-list: List topics or notes with optional AI summaries
     * note-organize: Archive/refine notes with confirmation prompts
     * note-overview: Summarize all notes in a topic
     * note-refine: Iteratively edit and improve notes
   - Added shared documentation (notes-layout.md, topics.md)

4. Updated skill documentation:
   - All note-* skills now mention summarize-notes.sh capability
   - Added tips on when to use summarization (multiple unclear results)
   - Consistent patterns using AskUserQuestion for confirmations
   - Clear examples of piping: `list-titles.sh topic/ | summarize-notes.sh`

Benefits:
- Cleaner script output for reliable piping
- Fast AI summaries help disambiguate similar notes
- Modular skills with clear responsibilities
- Better UX with confirmation prompts before bulk operations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@nx-cloud
Copy link

nx-cloud bot commented Nov 5, 2025

View your CI Pipeline Execution ↗ for commit 164c7b1

Command Status Duration Result
nx affected -t build --configuration=production... ✅ Succeeded <1s View ↗
nx affected -t lint typecheck test --parallel -... ✅ Succeeded <1s View ↗

☁️ Nx Cloud last updated this comment at 2025-11-05 11:27:45 UTC

@github-actions
Copy link
Contributor

github-actions bot commented Nov 5, 2025

🔍 Preview Deployment: Website

Deployment successful!

🔗 Preview URL: https://pr-316.pgflow.pages.dev

📝 Details:

  • Branch: chore-refactor-notes-skill
  • Commit: f5fecd91b5ec7326b517e98181e362318d8d237a
  • View Logs

_Last updated: _

Comment on lines +50 to +61
if [ ! -f "$path" ]; then
return # Skip failed files silently
fi

# Get summary (pass prompt as separate words, not quoted)
local summary
summary=$(aichat --model "$MODEL" -f "$path" $PROMPT 2>/dev/null || echo "")

# Skip if summary failed
if [ -z "$summary" ]; then
return
fi
Copy link
Contributor

Choose a reason for hiding this comment

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

Silent skipping of failed files creates inconsistent output with missing rows. When a file doesn't exist or summary generation fails, the function returns without outputting anything, causing the output to have fewer rows than the input. This breaks the table format and users won't know which files failed.

Fix: Always output the original line, even if processing fails:

# Skip if file doesn't exist
if [ ! -f "$path" ]; then
  echo "$line | (file not found)"
  return
fi

# Get summary
local summary
summary=$(aichat --model "$MODEL" -f "$path" $PROMPT 2>/dev/null || echo "")

# Skip if summary failed
if [ -z "$summary" ]; then
  echo "$line | (summary failed)"
  return
fi

This ensures consistent row count and informs users of failures.

Suggested change
if [ ! -f "$path" ]; then
return # Skip failed files silently
fi
# Get summary (pass prompt as separate words, not quoted)
local summary
summary=$(aichat --model "$MODEL" -f "$path" $PROMPT 2>/dev/null || echo "")
# Skip if summary failed
if [ -z "$summary" ]; then
return
fi
if [ ! -f "$path" ]; then
echo "$line | (file not found)"
return
fi
# Get summary (pass prompt as separate words, not quoted)
local summary
summary=$(aichat --model "$MODEL" -f "$path" $PROMPT 2>/dev/null || echo "")
# Skip if summary failed
if [ -z "$summary" ]; then
echo "$line | (summary failed)"
return
fi

Spotted by Graphite Agent

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants