Coding
PromptBeginner5 minmarkdown
Markdown Converter
Agent skill for markdown-converter
7
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a modern AI-focused news aggregator that has evolved from cybersecurity/technology to focus on AI industry news, AI tools, research, and coding platforms. Built with Node.js/Express backend and vanilla JavaScript frontend (~1600 lines), featuring advanced filtering, content management, and dynamic source administration.
npm start - Start production server (default port 3000)npm run dev - Start development server with nodemon auto-restartnpm run build - Frontend build process (currently just echoes completion)node server.js - Direct server startupnpm test - Run all tests (unit and API tests)npm run test:unit - Run unit tests only (sanitizer tests)npm run test:api - Run API integration tests (requires server running)npm run test:security - Run security-specific testsnpm run lint - Run linter (currently placeholder, no linter configured)npm run typecheck - Run type checking (currently placeholder, no TypeScript)server.js - Main Express server with API routes and cron schedulingservices/newsService.js - Core news scraping engine with source-specific scraperssources.json - Dynamic news source configuration with status trackingpublic/index.html - Main application interface with Material Design-inspired UIpublic/app.js - Core frontend application logic (1583 lines, class-based architecture)public/styles.css - Complete responsive stylesheet with dark/light themespublic/admin.html + public/admin.js - Dynamic news source management interfacepublic/architecture.html - System architecture documentationpublic/favicon.svg - Application faviconsources.json with real-time status trackingnewsService.js loads active sources from sources.json dynamicallyserver.js memory with lazy loading on first request/api/news (cached) and /api/refresh (live update)articleCount, lastSuccess, lastError, lastAttemptSources in
sources.json include:
id, name, url, category (AI Industry, AI News, AI Research, Coding Tools)status (active/inactive) - only active sources are scrapedarticleCount, lastSuccess, lastError, lastAttempt, createdselectors field for generic scraper configurationsources.json with unique ID and appropriate categorynewsService.jsGET /api/news - Retrieve cached articles (lazy loads if cache empty)GET /api/refresh - Force refresh all active sources, return updated cacheGET /api/sources - List all news sources with statusPOST /api/sources - Add new news sourcePUT /api/sources/:id - Update existing sourceDELETE /api/sources/:id - Delete sourceGET / - Main application (index.html)GET /admin - Admin interface (admin.html)public/ directorytests/sanitizer.test.jstests/api.test.jshttp://localhost:3000 for API testsescapeHtml() for preventing XSS in text contentsanitizeHtml() removes dangerous elements and attributessanitizeUrl() ensures only HTTP/HTTPS protocolssanitizeSearchInput() limits length and removes dangerous patternsvalidateSourceUpdate() checks for dangerous keysThis repository has a custom news-ux-optimizer agent specifically designed for: