← All Skills
AI Skill

arxiv-watcher

Search and summarize papers from ArXiv. Use when the user asks for the latest research, specific topics on ArXiv, or a daily summary of AI papers.

0.0 (0 reviews) 0 stars 📦 0 installs 👁 0 views
Quick Install
npx skills add arxiv-watcher
AI Skill

arxiv-watcher

Search and summarize papers from ArXiv. Use when the user asks for the latest research, specific topics on ArXiv, or a daily summary of AI papers.

0.0 (0 reviews) 0 stars 📦 0 installs 👁 0 views
Quick Install
npx skills add arxiv-watcher
AI Skill

arxiv-watcher

Search and summarize papers from ArXiv. Use when the user asks for the latest research, specific topics on ArXiv, or a daily summary of AI papers.

0 stars
📦 0 installs
👁️ 0 views

ArXiv Watcher

This skill interacts with the ArXiv API to find and summarize the latest research papers.

Capabilities

  • Search: Find papers by keyword, author, or category.
  • Summarize: Fetch the abstract and provide a concise summary.
  • Save to Memory: Automatically record summarized papers to memory/RESEARCH_LOG.md for long-term tracking.
  • Deep Dive: Use web_fetch on the PDF link to extract more details if requested.
  • Workflow

    1. Use scripts/search_arxiv.sh "" to get the XML results.

    2. Parse the XML (look for , </code>, <code><summary></code>, and <code><link title="pdf"></code>). <p>3. Present the findings to the user. <p>4. <strong>MANDATORY</strong>: Append the title, authors, date, and summary of any paper discussed to <code>memory/RESEARCH_LOG.md</code>. Use the format: <p> <pre><code class="language-markdown"> ### [YYYY-MM-DD] TITLE_OF_PAPER <p> - <strong>Authors</strong>: Author List <p> - <strong>Link</strong>: ArXiv Link <p> - <strong>Summary</strong>: Brief summary of the paper and its relevance. <p> </code></pre></p><p><h2 id="examples">Examples</h2></p><p><li>"Busca los últimos papers sobre LLM reasoning en ArXiv."</li> <li>"Dime de qué trata el paper con ID 2512.08769."</li> <li>"Hazme un resumen de las novedades de hoy en ArXiv sobre agentes."</li></p><p><h2 id="resources">Resources</h2></p><p><li><code>scripts/search_arxiv.sh</code>: Direct API access script.</li></ul> <!-- Comments Section --> <div class="comments-section"> <h2 class="comments-header">Comments & Discussion</h2> <div class="comment-form"> <h3 style="margin-bottom: 1rem;">Add a comment</h3> <input type="text" id="comment-name" placeholder="Your name" required /> <input type="email" id="comment-email" placeholder="Email (optional)" /> <textarea id="comment-content" placeholder="Share your experience, ask questions, or provide feedback..." required></textarea> <button class="btn" onclick="submitComment()">Post Comment</button> </div> <ul class="comment-list" id="comments-list"> <!-- Comments loaded via JavaScript --> </ul> </div> </div> <!-- Reviews Section --> <div class="reviews-card"> <div class="reviews-header"> <h2 class="reviews-title">Reviews</h2> <div class="reviews-summary"> <span class="reviews-score" id="avg-rating">0.0</span> <div class="stars" id="summary-stars"> <span class="star">☆</span> <span class="star">☆</span> <span class="star">☆</span> <span class="star">☆</span> <span class="star">☆</span> </div> <span class="rating-count" id="total-reviews">0 reviews</span> </div> </div> <div class="review-form"> <h4>Write a Review</h4> <div class="star-input" id="star-input"> <span class="star" data-rating="1">☆</span> <span class="star" data-rating="2">☆</span> <span class="star" data-rating="3">☆</span> <span class="star" data-rating="4">☆</span> <span class="star" data-rating="5">☆</span> </div> <div class="form-row"> <input type="text" id="review-name" placeholder="Your name" required> <input type="email" id="review-email" placeholder="Email (optional)"> </div> <textarea id="review-content" placeholder="Share your experience with this skill..."></textarea> <button class="submit-btn" onclick="submitReview()">Submit Review</button> </div> <ul class="reviews-list" id="reviews-list"> <li class="no-reviews">No reviews yet. Be the first to review!</li> </ul> </div> <!-- CTA Section --> <div class="cta-section"> <h2>Get Weekly AI Skills</h2> <p>Join 500+ one-person companies receiving curated AI tools every week.</p> <form class="email-form" action="https://buttondown.com/api/emails/embed-subscribe/onepersoncompany" method="post" target="_blank"> <input type="email" name="email" placeholder="your@email.com" required> <button type="submit">Subscribe</button> </form> </div> </div> <!-- Reviews Section --> <div class="reviews-card"> <div class="reviews-header"> <h2 class="reviews-title">Reviews</h2> <div class="reviews-summary"> <span class="reviews-score" id="avg-rating">0.0</span> <div class="stars" id="summary-stars"> <span class="star">☆</span> <span class="star">☆</span> <span class="star">☆</span> <span class="star">☆</span> <span class="star">☆</span> </div> <span class="rating-count" id="total-reviews">0 reviews</span> </div> </div> <div class="review-form"> <h4>Write a Review</h4> <div class="star-input" id="star-input"> <span class="star" data-rating="1">☆</span> <span class="star" data-rating="2">☆</span> <span class="star" data-rating="3">☆</span> <span class="star" data-rating="4">☆</span> <span class="star" data-rating="5">☆</span> </div> <div class="form-row"> <input type="text" id="review-name" placeholder="Your name" required> <input type="email" id="review-email" placeholder="Email (optional)"> </div> <textarea id="review-content" placeholder="Share your experience with this skill..."></textarea> <button class="submit-btn" onclick="submitReview()">Submit Review</button> </div> <ul class="reviews-list" id="reviews-list"> <li class="no-reviews">No reviews yet. Be the first to review!</li> </ul> </div> <!-- CTA Section --> <div class="cta-section"> <h2>Get Weekly AI Skills</h2> <p>Join 500+ one-person companies receiving curated AI tools every week.</p> <form class="email-form" action="https://buttondown.com/api/emails/embed-subscribe/onepersoncompany" method="post" target="_blank"> <input type="email" name="email" placeholder="your@email.com" required> <button type="submit">Subscribe</button> </form> </div> </main> <!-- Sidebar --> <aside class="sidebar"> <div class="sidebar-card"> <h3>Stats</h3> <div class="stats-grid"> <div class="stat-box"> <div class="stat-value" id="sidebar-stars">0</div> <div class="stat-label">Stars</div> </div> <div class="stat-box"> <div class="stat-value" id="sidebar-installs">0</div> <div class="stat-label">Installs</div> </div> <div class="stat-box"> <div class="stat-value" id="sidebar-views">0</div> <div class="stat-label">Views</div> </div> <div class="stat-box"> <div class="stat-value" id="sidebar-rating">0.0</div> <div class="stat-label">Rating</div> </div> </div> </div> <div class="sidebar-card"> <h3>Actions</h3> <a href="https://github.com/onepersoncompany" target="_blank" class="action-btn action-btn-primary">🔗 View on GitHub</a> <button class="action-btn action-btn-secondary" onclick="recordInstall()">✓ Mark Installed</button> <button class="action-btn action-btn-secondary" id="star-btn" onclick="toggleStar()">☆ Star this Skill</button> </div> <div class="sidebar-card"> <h3>Quick Links</h3> <a href="/skills/index.html" class="action-btn action-btn-secondary">Browse All Skills</a> <a href="/index.html" class="action-btn action-btn-secondary">Back to Home</a> </div> </aside> </div> <footer> <div class="footer-links"> <a href="/index.html">Home</a> <a href="/skills/index.html">All Skills</a> <a href="https://github.com/onepersoncompany" target="_blank">GitHub</a> </div> <p class="footer-copyright">© 2024 One Person Company. Curated AI skills for solopreneurs.</p> </footer> <!-- Prism.js --> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-bash.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-javascript.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-python.min.js"></script> <script> const API_URL = 'https://skillboss-worker-r06hbqc5.heyboss.live'; const SKILL_SLUG = 'arxiv-watcher'; let selectedRating = 0; // Update star display function updateStars(container, rating) { const stars = container.querySelectorAll('.star'); stars.forEach((star, i) => { star.textContent = i < rating ? '★' : '☆'; star.classList.toggle('filled', i < rating); }); } // Star input handling document.getElementById('star-input').addEventListener('click', (e) => { if (e.target.classList.contains('star')) { selectedRating = parseInt(e.target.dataset.rating); updateStars(document.getElementById('star-input'), selectedRating); } }); // Load stats async function loadStats() { try { const res = await fetch(`${API_URL}/api/skills/${SKILL_SLUG}`); const data = await res.json(); const stars = data.star_count || 0; const installs = data.install_count || 0; const views = data.view_count || 0; const rating = data.avg_rating || 0; const reviews = data.review_count || 0; // Update header stats document.getElementById('star-count').textContent = stars; document.getElementById('install-count').textContent = installs; document.getElementById('view-count').textContent = views; document.getElementById('header-rating').textContent = rating.toFixed(1); document.getElementById('review-count').textContent = reviews; updateStars(document.getElementById('header-stars'), Math.round(rating)); // Update sidebar stats document.getElementById('sidebar-stars').textContent = stars; document.getElementById('sidebar-installs').textContent = installs; document.getElementById('sidebar-views').textContent = views; document.getElementById('sidebar-rating').textContent = rating.toFixed(1); // Update reviews summary document.getElementById('avg-rating').textContent = rating.toFixed(1); document.getElementById('total-reviews').textContent = `${reviews} reviews`; updateStars(document.getElementById('summary-stars'), Math.round(rating)); } catch (err) { console.error('Failed to load stats:', err); } } // Record view async function recordView() { try { await fetch(`${API_URL}/api/skills/${SKILL_SLUG}/view`, { method: 'POST' }); } catch (err) { console.error('Failed to record view:', err); } } // Toggle star async function toggleStar() { try { const res = await fetch(`${API_URL}/api/skills/${SKILL_SLUG}/star`, { method: 'POST' }); const data = await res.json(); if (data.success) { document.getElementById('star-btn').innerHTML = '★ Starred!'; document.getElementById('star-btn').style.background = 'var(--accent)'; document.getElementById('star-btn').style.color = 'white'; loadStats(); } } catch (err) { console.error('Failed to star:', err); } } // Record install async function recordInstall() { try { await fetch(`${API_URL}/api/skills/${SKILL_SLUG}/install`, { method: 'POST' }); alert('Install recorded! Thanks for using this skill.'); loadStats(); } catch (err) { console.error('Failed to record install:', err); } } // Copy install command function copyInstallCommand() { const cmd = document.getElementById('install-cmd').textContent; navigator.clipboard.writeText(cmd); const btn = document.querySelector('.copy-btn'); btn.textContent = 'Copied!'; setTimeout(() => { btn.textContent = 'Copy'; }, 2000); } // Load reviews async function loadReviews() { try { const res = await fetch(`${API_URL}/api/skills/${SKILL_SLUG}/comments`); const reviews = await res.json(); const list = document.getElementById('reviews-list'); if (reviews.length === 0) { list.innerHTML = '<li class="no-reviews">No reviews yet. Be the first to review!</li>'; return; } list.innerHTML = reviews.map(r => ` <li class="review-item"> <div class="review-meta"> <span class="review-author">${r.author_name}</span> <span class="review-date">${new Date(r.created_at).toLocaleDateString()}</span> </div> <div class="stars">${'★'.repeat(r.rating || 5)}${'☆'.repeat(5 - (r.rating || 5))}</div> <p class="review-content">${r.content}</p> </li> `).join(''); } catch (err) { console.error('Failed to load reviews:', err); } } // Submit review async function submitReview() { const name = document.getElementById('review-name').value.trim(); const email = document.getElementById('review-email').value.trim(); const content = document.getElementById('review-content').value.trim(); if (!name || !content) { alert('Please fill in your name and review'); return; } if (selectedRating === 0) { alert('Please select a star rating'); return; } try { await fetch(`${API_URL}/api/skills/${SKILL_SLUG}/comments`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ author_name: name, author_email: email, content: content, rating: selectedRating }) }); alert('Review submitted! Thank you.'); document.getElementById('review-name').value = ''; document.getElementById('review-email').value = ''; document.getElementById('review-content').value = ''; selectedRating = 0; updateStars(document.getElementById('star-input'), 0); loadReviews(); loadStats(); } catch (err) { console.error('Failed to submit review:', err); alert('Failed to submit review'); } } // Initialize window.addEventListener('DOMContentLoaded', () => { recordView(); loadStats(); loadReviews(); }); </script> </body> </html>