peptiderepo d65862504e feat(ci): add Neurometric PR-Summarizer as 4th QA voice (#6)
Neurometric markets a task-specialized PR-Summarizer SLM (Qwen3-4B +
specialist system prompt) on a free tier. Adding it as a 4th voice in
the existing A/B reviewer panel to see whether a specialized small
model catches things the 3 general-purpose voices miss.

The SLM does not honor OpenAI tool-calling, so it cannot return our
structured submit_review schema. Wired as a "prose voice":

- MODELS tuple gains a 6th provider_type field
  ("openrouter_tools" | "neurometric_prose")
- call_model() dispatches; new call_neurometric_prose() path hits
  api.neurometric.ai/v1 without tools, embeds raw markdown output,
  and infers verdict from keyword heuristic
- Render branch in PR comment marks the verdict as heuristic and
  notes tokens/cost are not tracked (free tier)
- Never the primary voice; heading still driven by Haiku

Also hardens the shared render path against models that omit the
optional 'summary' field (rev.get('summary') fallback).

Requires new repo secret NEUROMETRIC_API_KEY (already set on all four
peptiderepo repos). Voice self-skips with inline error if missing.

Agent-Session: cowork-neurometric-qa-voice-20260415

Co-authored-by: peptiderepo <peptiderepo@users.noreply.github.com>
2026-04-15 16:12:02 +07:00

Peptide News Aggregator

A WordPress plugin that aggregates and displays the latest peptide research news from multiple sources, with built-in click analytics and trend reporting.

Features

  • Multi-Source Fetching — Pulls articles from RSS/Atom feeds (Google News, PubMed, custom) and NewsAPI.org
  • Configurable Refresh — Admin-controlled cron intervals from 15 minutes to daily
  • Shortcode & Wigget — [peptide_news count="10"] shortcode with card/compact/list layouts, plus a sidebar widget
  • Click Analytics — Tracks every outbound click with session tracking, device detection, and GDPR-friendly IP anonymization
  • Analytics Dashboard — Chart.js-powered admin dashboard with trend lines, device breakdown, source performance, and top articles
  • REST API — Full JSON API at /wp-json/peptide-news/v1/ for external analytics tools
  • Topic Analysis — Aggregates clicks by article category to surface popular research topics
  • CSV Export — Export raw click data for offline analysis
  • Dark Mode — Automatically adapts to visitor's system theme preference
  • Performance — Transient caching, deduplication via SHA-256 hashing, and paginated DB queries

Requirements

  • WordPress 5.8+
  • PHP 7.4+
  • MySQL 5.7+ or MariaDB 10.3+

Installation

  1. Download or clone this repository into wp-content/plugins/:
    cd wp-content/plugins/
    git clone https://github.com/peptiderepo/peptide-news-plugin.git
    
  2. Activate the plugin in Plugins → Installed Plugins
  3. Navigate to Peptide News → Settings to configure your sources and fetch interval
  4. Click Fetch Articles Now to pull the first batch
  5. Add [peptide_news] to any page or post, or add the widget via Appearance → Widgets

Configuration

Settings (Peptide News → Settings)

Setting Description Default
Fetch Interval How often to check for new articles Twice daily
Articles to Display Number shown in shortcode/widget 10
Search Keywords Comma-separated terms for NewsAPI peptide, peptides, BPC-157...
RSS Feeds One URL per line Google News + PubMed
NewsAPI Key Optional API key from newsapi.org —
Data Retention Days to keep analytics data 365
Anonymize IPs Zero out last IP octet (GDPR) Enabled

Shortcode Usage

[peptide_news]                        <!-- Default: 10 articles, card layout -->
[peptide_news count="5"]              <!-- 5 articles -->
[peptide_news count="8" layout="list"] <!-- List layout -->
[peptide_news layout="compact"]       <!-- Compact layout (widget-style) -->

REST API Endpoints

All analytics endpoints require admin authentication (cookie or Application Password).

Method Endpoint Description
GET /wp-json/peptide-news/v1/articles List stored articles (public)
GET /wp-json/peptide-news/v1/analytics/top Top articles by clicks
GET /wp-json/peptide-news/v1/analytics/trends Daily click trend data
GET /wp-json/peptide-news/v1/analytics/topics Popular topics/categories
GET /wp-json/peptide-news/v1/analytics/devices Device breakdown
GET /wp-json/peptide-news/v1/analytics/sources Source performance
GET /wp-json/peptide-news/v1/analytics/export Raw click data for CSV

Query parameters: start_date, end_date (Y-m-d), limit (int).

Database Schema

The plugin creates three custom tables on activation:

  • wp_peptide_news_articles — Stores all fetched article data (title, excerpt, content, author, thumbnail, categories, source, etc.)
  • wp_peptide_news_clicks — Raw click events with session, device, referrer data
  • wp_peptide_news_daily_stats — Pre-aggregated daily stats for fast dashboard queries

All tables are dropped on plugin uninstall (not deactivation — data is preserved if you temporarily disable the plugin).

Architecture

peptide-news-plugin/
├── peptide-news-plugin.php          # Bootstrap & hooks
├── uninstall.php                    # Cleanup on uninstall
├── includes/
│   ├── class-peptide-news.php       # Core orchestrator
│   ├── class-peptide-news-loader.php
│   ├── class-peptide-news-activator.php
│   ├── class-peptide-news-deactivator.php
│   ├── class-peptide-news-fetcher.php    # Multi-source fetcher
│   ├── class-peptide-news-analytics.php  # Click tracking & reports
│   └── class-peptide-news-rest-api.php   # REST endpoints
├── admin/
│   ├── class-peptide-news-admin.php      # Settings & dashboard
│   ├── css/admin-style.css
│   ├── js/admin-script.js               # Chart.js dashboard
│   └── partials/
│       ├── dashboard.php
│       └── articles-list.php
├── public/
│   ├── class-peptide-news-public.php     # Shortcode, widget, AJAX
│   ├── css/public-style.css
│   └── js/public-script.js              # Click tracker (sendBeacon)
└── languages/                            # i18n ready

License

GPL-2.0+ — See LICENSE for details.

Description
No description provided
Readme 540 KiB
Languages
PHP 87.1%
JavaScript 7.4%
CSS 5.4%