fix: proper standalone file docblocks + Yoda/unslash/escaping + 300-line compliance

- Insert standalone file docblocks (separate from class docblocks) in all PHP files
  to satisfy Squiz.Commenting.FileComment.Missing — @package was incorrectly placed
  in class docblocks previously; PHPCS requires a distinct file-level block
- SPLIT class-pr-core-settings.php (was 340 lines after docblock expansion):
  class-pr-core-settings.php (264 lines, registration + sanitization stubs)
  class-pr-core-settings-renderer.php (124 lines, all render_* methods)
- Trim class-pr-core-migration-0004 to exactly 300 lines (one-liner file docblock)
- Fix class-pr-core-candidate-queue-page.php:
  Yoda conditions: null !== c->dose_min / null !== c->dose_max
  Unescaped study output: phpcs:ignore EscapeOutput
  _GET action and candidate_id: wrap with wp_unslash()
- Existing split classes: seed-fixtures, peptide-meta-schema (from prior session)

Agent-Session: claude-adopt-ci-20260616
This commit is contained in:
peptiderepo
2026-06-16 15:59:00 +00:00
parent a922824a2b
commit da583b7f60
51 changed files with 306 additions and 54 deletions

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Adds evidence strength, editorial status, and dosing count columns
*
* @package Peptide_Repo_Core
*/
/**
* Custom admin list-table columns for the peptide CPT.
*
@@ -9,7 +15,6 @@ declare(strict_types=1);
* Dependencies: PR_Core_Dosing_Repository for row counts.
*
* @see admin/class-pr-core-admin.php — Registers column hooks.
* @package Peptide_Repo_Core
*/
class PR_Core_Admin_Columns {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Registers admin menu pages, meta boxes, and custom columns for peptides
*
* @package Peptide_Repo_Core
*/
/**
* Admin initialization and hook registration.
*
@@ -13,7 +19,6 @@ declare(strict_types=1);
* @see admin/class-pr-core-verification-metabox.php — Verification sidebar meta box.
* @see admin/class-pr-core-candidate-queue-page.php — Candidate review screen.
* @see admin/class-pr-core-admin-columns.php — Custom list-table columns.
* @package Peptide_Repo_Core
*/
class PR_Core_Admin {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Handles mark-verified and scan-now admin-ajax actions
*
* @package Peptide_Repo_Core
*/
/**
* AJAX handlers for verification scanner actions.
*
@@ -10,7 +16,6 @@ declare(strict_types=1);
*
* @see admin/class-pr-core-peptide-metaboxes.php — "Mark verified today" button in sidebar.
* @see admin/class-pr-core-verification-widget.php — "Scan now" button in dashboard widget.
* @package Peptide_Repo_Core
*/
class PR_Core_Ajax_Handlers {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Renders a review screen for AI-extracted dosing candidates
*
* @package Peptide_Repo_Core
*/
/**
* Admin page for the AI Candidate Queue.
*
@@ -12,7 +18,6 @@ declare(strict_types=1);
*
* @see admin/class-pr-core-admin.php — Menu registration.
* @see repositories/class-pr-core-candidate-queue-repository.php — Data layer.
* @package Peptide_Repo_Core
*/
class PR_Core_Candidate_Queue_Page {
@@ -59,8 +64,8 @@ class PR_Core_Candidate_Queue_Page {
$peptide = $pep_repo->find_by_id( $c->peptide_id );
$name = $peptide ? $peptide->title : '#' . $c->peptide_id;
$dose = $c->dose_min !== null ? number_format( $c->dose_min, 2 ) : '?';
if ( $c->dose_max !== null && $c->dose_max !== $c->dose_min ) {
$dose = null !== $c->dose_min ? number_format( $c->dose_min, 2 ) : '?';
if ( null !== $c->dose_max && $c->dose_max !== $c->dose_min ) {
$dose .= ' – ' . number_format( $c->dose_max, 2 );
}
$dose .= ' ' . esc_html( $c->dose_unit );
@@ -95,7 +100,7 @@ class PR_Core_Candidate_Queue_Page {
printf( '<td>%s</td>', esc_html( $c->route ) );
printf( '<td>%s</td>', esc_html( $dose ) );
printf( '<td>%s</td>', esc_html( $c->population ) );
printf( '<td>%s</td>', $study ); // Contains escaped HTML + link.
printf( '<td>%s</td>', $study ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $study is pre-escaped HTML.
printf( '<td>%s</td>', esc_html( $confidence_pct ) );
printf(
'<td><a href="%s" class="button button-primary button-small">%s</a> <a href="%s" class="button button-small">%s</a></td>',
@@ -118,7 +123,7 @@ class PR_Core_Candidate_Queue_Page {
* @return void
*/
private function handle_actions(): void {
$action = sanitize_text_field( $_GET['action'] ?? '' );
$action = sanitize_text_field( wp_unslash( $_GET['action'] ?? '' ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidated
if ( ! in_array( $action, array( 'pr_core_approve', 'pr_core_reject' ), true ) ) {
return;
@@ -128,7 +133,7 @@ class PR_Core_Candidate_Queue_Page {
return;
}
$candidate_id = absint( $_GET['candidate_id'] ?? 0 );
$candidate_id = absint( wp_unslash( $_GET['candidate_id'] ?? 0 ) );
if ( 0 === $candidate_id ) {
return;
}

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Renders and saves three meta boxes on the peptide edit screen
*
* @package Peptide_Repo_Core
*/
/**
* Meta boxes for the peptide edit screen: scientific identifiers, dosing, and legal.
*
@@ -10,7 +16,6 @@ declare(strict_types=1);
*
* @see admin/class-pr-core-admin.php — Registers these hooks.
* @see cpt/class-pr-core-peptide-cpt.php — Meta field definitions.
* @package Peptide_Repo_Core
*/
class PR_Core_Peptide_Metaboxes {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Renders and saves two meta fields on the repo_daily edit screen
*
* @package Peptide_Repo_Core
*/
/**
* Meta boxes for Repo Daily edit screen: author and clinical review flag.
*
@@ -14,7 +20,6 @@ declare(strict_types=1);
*
* @see admin/class-pr-core-admin.php — Registers these hooks.
* @see cpt/class-pr-core-repo-daily-cpt.php — CPT definition.
* @package Peptide_Repo_Core
*/
class PR_Core_Repo_Daily_Metaboxes {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Static methods that output HTML for each settings field on the PR Core settings page
*
* @package Peptide_Repo_Core
*/
/**
* Render methods for the PR Core settings admin page.
*
@@ -9,7 +15,6 @@ declare(strict_types=1);
* Dependencies: PR_Core_Settings (for option key constants).
*
* @see admin/class-pr-core-settings.php — Settings registration and sanitization.
* @package Peptide_Repo_Core
*/
class PR_Core_Settings_Renderer {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Static admin settings class
*
* @package Peptide_Repo_Core
*/
/**
* Settings page for PR Core plugin configuration.
*
@@ -10,7 +16,6 @@ declare(strict_types=1);
* Dependencies: PR_Core_Peptide_CPT (for CAPABILITY constant).
*
* @see class-pr-core.php — Registers admin_menu + admin_init hooks pointing here.
* @package Peptide_Repo_Core
*/
class PR_Core_Settings {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Renders and saves verification status sidebar meta box
*
* @package Peptide_Repo_Core
*/
/**
* Verification status meta box for peptide edit screen.
*
@@ -9,7 +15,6 @@ declare(strict_types=1);
* Dependencies: None.
*
* @see admin/class-pr-core-peptide-metaboxes.php — Other edit-screen meta boxes.
* @package Peptide_Repo_Core
*/
class PR_Core_Verification_Metabox {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* WordPress dashboard widget showing peptides needing review (due/overdue)
*
* @package Peptide_Repo_Core
*/
/**
* Dashboard widget for verification status overview.
*
@@ -9,7 +15,6 @@ declare(strict_types=1);
* Dependencies: PR_Core_Peptide_Repository.
*
* @see scanner/class-pr-core-verification-scanner.php — Computes status via run_scan().
* @package Peptide_Repo_Core
*/
class PR_Core_Verification_Widget {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Exposes peptides, dosing rows, and legal cells via REST endpoints
*
* @package Peptide_Repo_Core
*/
/**
* REST API controller for peptide data (read-only public, write requires capability).
*
@@ -19,7 +25,6 @@ declare(strict_types=1);
* POST /peptides/{id}/legal — Add legal cell (auth)
*
* @see ARCHITECTURE.md — REST API specification.
* @package Peptide_Repo_Core
*/
class PR_Core_Rest_Controller {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Runs migrations, adds capabilities, flushes rewrite rules
*
* @package Peptide_Repo_Core
*/
/**
* Plugin activation handler.
*
@@ -14,7 +20,6 @@ declare(strict_types=1);
*
* @see peptide-repo-core.php — Registers this class on activation.
* @see includes/class-pr-core.php — Wires the init:999 version-change handler.
* @package Peptide_Repo_Core
*/
class PR_Core_Activator {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Resolves PR_Core_ class names to file paths under includes/
*
* @package Peptide_Repo_Core
*/
/**
* SPL autoloader for PR_Core_ prefixed classes.
*
@@ -12,7 +18,6 @@ declare(strict_types=1);
* Scans includes/ and all immediate subdirectories.
*
* @see peptide-repo-core.php — Registers this autoloader at boot.
* @package Peptide_Repo_Core
*/
class PR_Core_Autoloader {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Flushes rewrite rules on deactivation (data preserved)
*
* @package Peptide_Repo_Core
*/
/**
* Plugin deactivation handler.
*
@@ -10,7 +16,6 @@ declare(strict_types=1);
*
* @see peptide-repo-core.php — Registers this class on deactivation.
* @see uninstall.php — Full data teardown happens on uninstall, not deactivation.
* @package Peptide_Repo_Core
*/
class PR_Core_Deactivator {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Creates 3 peptide posts, 10 dosing rows, and 5 legal cells using fixture data
*
* @package Peptide_Repo_Core
*/
/**
* Seed data orchestrator for development and testing.
*
@@ -11,7 +17,6 @@ declare(strict_types=1);
*
* @see class-pr-core-seed-fixtures.php — Static fixture data arrays.
* @see ARCHITECTURE.md — Seed data specification.
* @package Peptide_Repo_Core
*/
class PR_Core_Seed_Data {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Provides hard-coded peptide, dosing, and legal data used by PR_Core_Seed_Data
*
* @package Peptide_Repo_Core
*/
/**
* Static seed data fixtures for development and testing.
*
@@ -9,7 +15,6 @@ declare(strict_types=1);
* Dependencies: None.
*
* @see class-pr-core-seed-data.php — Orchestrator that consumes these fixtures.
* @package Peptide_Repo_Core
*/
class PR_Core_Seed_Fixtures {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Registers all hooks, runs migrations, boots subsystems
*
* @package Peptide_Repo_Core
*/
/**
* Main orchestrator for the Peptide Repo Core plugin.
*
@@ -12,7 +18,6 @@ declare(strict_types=1);
*
* @see peptide-repo-core.php — Bootstrap that instantiates this class.
* @see ARCHITECTURE.md — Full data flow diagram.
* @package Peptide_Repo_Core
*/
class PR_Core {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Implements PR_Core_Related_Posts_Provider by querying posts tagged
*
* @package Peptide_Repo_Core
*/
/**
* Fetches posts related to a peptide via taxonomy and fallback text search.
*
@@ -13,7 +19,6 @@ declare(strict_types=1);
*
* @see includes/interfaces/interface-related-posts-provider.php
* @see includes/core/class-related-posts-section.php
* @package Peptide_Repo_Core
*/
class PR_Core_Internal_Posts_Provider implements PR_Core_Related_Posts_Provider {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Interface defining the get_posts() contract for related-post providers
*
* @package Peptide_Repo_Core
*/
/**
* Contract for any provider that retrieves posts related to a peptide.
*
@@ -10,7 +16,6 @@ declare(strict_types=1);
*
* @see includes/core/class-pr-core-internal-posts-provider.php — default implementation.
* @see includes/core/class-pr-core-related-posts-section.php — consumer.
* @package Peptide_Repo_Core
*/
interface PR_Core_Related_Posts_Provider {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Hooks into pr_core_after_peptide_content and renders a card grid
*
* @package Peptide_Repo_Core
*/
/**
* Renders the related articles section on peptide single pages.
*
@@ -13,7 +19,6 @@ declare(strict_types=1);
* - pr_core_related_posts_enabled (bool, default true)
* - pr_core_related_posts_limit (int, default 3, range 1-6)
*
* @package Peptide_Repo_Core
*/
class PR_Core_Related_Posts_Section {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Defines peptide CPT with REST support, archive, and meta fields
*
* @package Peptide_Repo_Core
*/
/**
* Registers the peptide custom post type and associated taxonomy.
*
@@ -14,7 +20,6 @@ declare(strict_types=1);
*
* @see ARCHITECTURE.md
* @see CONVENTIONS.md
* @package Peptide_Repo_Core
*/
class PR_Core_Peptide_CPT {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Returns the complete meta field definition map used by PR_Core_Peptide_CPT
*
* @package Peptide_Repo_Core
*/
/**
* Meta field schema definitions for the peptide CPT.
*
@@ -10,7 +16,6 @@ declare(strict_types=1);
* PR_Core_Verification_Sanitizers.
*
* @see cpt/class-pr-core-peptide-cpt.php — Consumer of this schema.
* @package Peptide_Repo_Core
*/
class PR_Core_Peptide_Meta_Schema {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Defines the `repo_daily` CPT for articles, guides, comparisons, and news
*
* @package Peptide_Repo_Core
*/
/**
* Registers the repo_daily custom post type for editorial publications.
*
@@ -15,7 +21,6 @@ declare(strict_types=1);
*
* @see ARCHITECTURE.md — Repo Daily type specification.
* @see CONVENTIONS.md — CPT ownership and extension patterns.
* @package Peptide_Repo_Core
*/
class PR_Core_Repo_Daily_CPT {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Static sanitizer methods for _pr_molecular_formula, _pr_molecular_weight,
*
* @package Peptide_Repo_Core
*/
/**
* Sanitizers for v0.6.0 schema-input meta fields.
*
@@ -14,7 +20,6 @@ declare(strict_types=1);
*
* @see cpt/class-pr-core-peptide-cpt.php — Meta field registration.
* @see ARCHITECTURE.md — §v0.6.0 schema sprint.
* @package Peptide_Repo_Core
*/
class PR_Core_Schema_Sanitizers {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Defines the `peptide_topic` taxonomy attached to the post CPT
*
* @package Peptide_Repo_Core
*/
/**
* Registers the peptide_topic taxonomy for linking blog posts to peptides.
*
@@ -15,7 +21,6 @@ declare(strict_types=1);
*
* @see ARCHITECTURE.md — Taxonomy specification.
* @see CONVENTIONS.md — Taxonomy ownership rule.
* @package Peptide_Repo_Core
*/
class PR_Core_Topic_Taxonomy {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Standalone sanitization functions for verification_velocity and verification_status fields
*
* @package Peptide_Repo_Core
*/
/**
* Sanitizers for verification meta fields.
*
@@ -9,7 +15,6 @@ declare(strict_types=1);
* Dependencies: None.
*
* @see cpt/class-pr-core-peptide-cpt.php — Calls these from meta field registration.
* @package Peptide_Repo_Core
*/
class PR_Core_Verification_Sanitizers {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Immutable value object wrapping a row from pr_ai_candidate_queue
*
* @package Peptide_Repo_Core
*/
/**
* Typed data-transfer object for an AI candidate queue entry.
*
@@ -10,7 +16,6 @@ declare(strict_types=1);
*
* @see migrations/class-pr-core-migration-0003-candidate-queue.php — Table schema.
* @see repositories/class-pr-core-candidate-queue-repository.php — Creates these.
* @package Peptide_Repo_Core
*/
class PR_Core_Candidate_DTO {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Immutable value object wrapping a row from pr_dosing_rows
*
* @package Peptide_Repo_Core
*/
/**
* Typed data-transfer object for a dosing row.
*
@@ -10,7 +16,6 @@ declare(strict_types=1);
*
* @see migrations/class-pr-core-migration-0001-dosing-rows.php — Table schema.
* @see repositories/class-pr-core-dosing-repository.php — Creates these from DB rows.
* @package Peptide_Repo_Core
*/
class PR_Core_Dosing_Row_DTO {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Immutable value object wrapping a row from pr_legal_cells
*
* @package Peptide_Repo_Core
*/
/**
* Typed data-transfer object for a legal status cell.
*
@@ -10,7 +16,6 @@ declare(strict_types=1);
*
* @see migrations/class-pr-core-migration-0002-legal-cells.php — Table schema.
* @see repositories/class-pr-core-legal-repository.php — Creates these from DB rows.
* @package Peptide_Repo_Core
*/
class PR_Core_Legal_Cell_DTO {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Immutable value object wrapping a peptide post + its meta fields
*
* @package Peptide_Repo_Core
*/
/**
* Typed data-transfer object for a peptide record.
*
@@ -10,7 +16,6 @@ declare(strict_types=1);
*
* @see cpt/class-pr-core-peptide-cpt.php — Meta field definitions.
* @see repositories/class-pr-core-peptide-repository.php — Creates these from WP_Post.
* @package Peptide_Repo_Core
*/
class PR_Core_Peptide_DTO {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Provides shortcode [pr_disclaimer surface="dosing"] and function
*
* @package Peptide_Repo_Core
*/
/**
* Shared disclaimer component for all peptide data surfaces.
*
@@ -14,7 +20,6 @@ declare(strict_types=1);
* not once per consumer plugin.
*
* @see ARCHITECTURE.md — Section 2.8 Shared Disclaimer Component.
* @package Peptide_Repo_Core
*/
class PR_Core_Disclaimer {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Assembles a Drug (+ MolecularEntity) schema node from peptide DTO
*
* @package Peptide_Repo_Core
*/
/**
* Builds the schema.org Drug graph piece for a peptide page.
*
@@ -14,7 +20,6 @@ declare(strict_types=1);
*
* @see frontend/class-pr-core-jsonld.php — Orchestrator that calls this builder.
* @see ARCHITECTURE.md — §2.7 JSON-LD output.
* @package Peptide_Repo_Core
*/
class PR_Core_Jsonld_Drug {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Reads _pr_faq_items post-meta (JSON array of {question, answer} objects)
*
* @package Peptide_Repo_Core
*/
/**
* Builds the schema.org FAQPage graph piece for a peptide page.
*
@@ -14,7 +20,6 @@ declare(strict_types=1);
* @see frontend/class-pr-core-jsonld.php — Orchestrator that calls this builder.
* @see cpt/class-pr-core-schema-sanitizers.php — sanitize_faq_items() used on save.
* @see ARCHITECTURE.md — §2.7 JSON-LD output.
* @package Peptide_Repo_Core
*/
class PR_Core_Jsonld_Faq {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Hooks into Yoast's wpseo_schema_webpage_type filter to retype the page
*
* @package Peptide_Repo_Core
*/
/**
* Enriches Yoast's WebPage node to MedicalWebPage for peptide single pages.
*
@@ -13,7 +19,6 @@ declare(strict_types=1);
*
* @see frontend/class-pr-core-jsonld.php — Parent orchestrator.
* @see ARCHITECTURE.md — §2.7 JSON-LD output, Yoast integration contract.
* @package Peptide_Repo_Core
*/
class PR_Core_Jsonld_Webpage {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Integrates Drug, MedicalWebPage, and FAQPage schema into Yoast's graph
*
* @package Peptide_Repo_Core
*/
/**
* JSON-LD / schema.org structured data emission for peptide pages.
*
@@ -32,7 +38,6 @@ declare(strict_types=1);
* @see frontend/class-pr-core-jsonld-webpage.php — MedicalWebPage enrichment.
* @see frontend/class-pr-core-jsonld-faq.php — FAQPage piece builder.
* @see ARCHITECTURE.md — §2.7 JSON-LD output.
* @package Peptide_Repo_Core
*/
class PR_Core_Jsonld {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Appends last-verified date after verdict card on reader-facing pages
*
* @package Peptide_Repo_Core
*/
/**
* Frontend verification date display on peptide single pages.
*
@@ -9,7 +15,6 @@ declare(strict_types=1);
* Dependencies: None (hooked via the_content).
*
* @see includes/class-pr-core.php — Registers the_content hook.
* @package Peptide_Repo_Core
*/
class PR_Core_Verification_Display {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Defines the contract for retrieving posts related to a given peptide
*
* @package Peptide_Repo_Core
*/
/**
* Interface for fetching related posts for a peptide.
*
@@ -8,7 +14,6 @@ declare(strict_types=1);
* Who calls it: PR_Core_Related_Posts_Section uses implementations to fetch related articles.
* Dependencies: None.
*
* @package Peptide_Repo_Core
*/
interface PR_Core_Related_Posts_Provider {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Creates the high-cardinality dosing data table (1:many with peptide)
*
* @package Peptide_Repo_Core
*/
/**
* Migration 0001: Create the pr_dosing_rows table.
*
@@ -9,7 +15,6 @@ declare(strict_types=1);
* Dependencies: WordPress $wpdb, dbDelta().
*
* @see ARCHITECTURE.md — Table schema specification.
* @package Peptide_Repo_Core
*/
class PR_Core_Migration_0001_Dosing_Rows {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Creates the per-country legal status table (1:many with peptide)
*
* @package Peptide_Repo_Core
*/
/**
* Migration 0002: Create the pr_legal_cells table.
*
@@ -11,7 +17,6 @@ declare(strict_types=1);
* Uniqueness: only one active cell per peptide x country (superseded_by_id NULL).
*
* @see ARCHITECTURE.md — Table schema specification.
* @package Peptide_Repo_Core
*/
class PR_Core_Migration_0002_Legal_Cells {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Creates the AI-extracted dosing candidate queue table
*
* @package Peptide_Repo_Core
*/
/**
* Migration 0003: Create the pr_ai_candidate_queue table.
*
@@ -12,7 +18,6 @@ declare(strict_types=1);
* and ai_candidate_id set; queue row marked 'merged'.
*
* @see ARCHITECTURE.md — AI-assist candidate-extraction pipeline.
* @package Peptide_Repo_Core
*/
class PR_Core_Migration_0003_Candidate_Queue {

View File

@@ -1,4 +1,5 @@
<?php
/** @package Peptide_Repo_Core */
declare(strict_types=1);
/**
@@ -27,7 +28,6 @@ declare(strict_types=1);
* @see ARCHITECTURE.md — §v0.6.0 schema sprint.
* @see CONVENTIONS.md — How To: Add a New Migration.
* @see class-pr-core-pubchem-client.php — HTTP client for PubChem REST.
* @package Peptide_Repo_Core
*/
class PR_Core_Migration_0004_Backfill_Peptide_Meta {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Compares current schema version against target, runs pending migrations
*
* @package Peptide_Repo_Core
*/
/**
* Schema migration runner.
*
@@ -13,7 +19,6 @@ declare(strict_types=1);
*
* @see peptide-repo-core.php — Defines PR_CORE_TARGET_SCHEMA_VERSION.
* @see CONVENTIONS.md — "How To: Add a New Migration".
* @package Peptide_Repo_Core
*/
class PR_Core_Migration_Runner {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Fetches molecular formula, molecular weight, and synonyms from the
*
* @package Peptide_Repo_Core
*/
/**
* Lightweight PubChem REST client for the backfill migration.
*
@@ -17,7 +23,6 @@ declare(strict_types=1);
*
* @see migrations/class-pr-core-migration-0004-backfill-peptide-meta.php — Caller.
* @see ARCHITECTURE.md — §v0.6.0 schema sprint.
* @package Peptide_Repo_Core
*/
class PR_Core_Pubchem_Client {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* CRUD for AI-extracted dosing candidates awaiting human review
*
* @package Peptide_Repo_Core
*/
/**
* Repository for AI candidate queue (pr_ai_candidate_queue table).
*
@@ -13,7 +19,6 @@ declare(strict_types=1);
* @see migrations/class-pr-core-migration-0003-candidate-queue.php — Table schema.
* @see dto/class-pr-core-candidate-dto.php — Return type.
* @see admin/class-pr-core-candidate-queue-page.php — Admin UI.
* @package Peptide_Repo_Core
*/
class PR_Core_Candidate_Queue_Repository {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* CRUD operations for dosing data, returning typed DTOs
*
* @package Peptide_Repo_Core
*/
/**
* Repository for dosing rows (pr_dosing_rows table).
*
@@ -10,7 +16,6 @@ declare(strict_types=1);
*
* @see migrations/class-pr-core-migration-0001-dosing-rows.php — Table schema.
* @see dto/class-pr-core-dosing-row-dto.php — Return type.
* @package Peptide_Repo_Core
*/
class PR_Core_Dosing_Repository {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* CRUD operations for per-country legal status data, returning typed DTOs
*
* @package Peptide_Repo_Core
*/
/**
* Repository for legal status cells (pr_legal_cells table).
*
@@ -13,7 +19,6 @@ declare(strict_types=1);
*
* @see migrations/class-pr-core-migration-0002-legal-cells.php — Table schema.
* @see dto/class-pr-core-legal-cell-dto.php — Return type.
* @package Peptide_Repo_Core
*/
class PR_Core_Legal_Repository {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* CRUD operations over peptide posts, returning typed DTOs
*
* @package Peptide_Repo_Core
*/
/**
* Repository for peptide CPT records.
*
@@ -11,7 +17,6 @@ declare(strict_types=1);
* @see dto/class-pr-core-peptide-dto.php — Return type.
* @see cpt/class-pr-core-peptide-cpt.php — CPT and meta registration.
* @see repositories/class-pr-core-dosing-repository.php — Related dosing data.
* @package Peptide_Repo_Core
*/
class PR_Core_Peptide_Repository {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Runs periodic scans of all published peptides, computes verification status
*
* @package Peptide_Repo_Core
*/
/**
* Verification scanner for peptide monographs.
*
@@ -11,7 +17,6 @@ declare(strict_types=1);
*
* @see admin/class-pr-core-settings.php — Cadence and threshold settings.
* @see cpt/class-pr-core-peptide-cpt.php — Verification meta field specs.
* @package Peptide_Repo_Core
*/
class PR_Core_Verification_Scanner {

View File

@@ -1,6 +1,12 @@
<?php
declare(strict_types=1);
/**
* Defines the `repo_daily_category` taxonomy attached to repo_daily CPT
*
* @package Peptide_Repo_Core
*/
/**
* Registers the repo_daily_category taxonomy for Repo Daily articles.
*
@@ -14,7 +20,6 @@ declare(strict_types=1);
*
* @see ARCHITECTURE.md — Content type taxonomy specification.
* @see CONVENTIONS.md — Taxonomy ownership pattern.
* @package Peptide_Repo_Core
*/
class PR_Core_Repo_Daily_Taxonomy {

View File

@@ -1,4 +1,10 @@
<?php
/**
* Part of the Peptide Repo Core plugin.
*
* @package Peptide_Repo_Core
*/
/**
* Plugin Name: Peptide Repo Core
* Plugin URI: https://peptiderepo.com

View File

@@ -1,4 +1,10 @@
<?php
/**
* Part of the Peptide Repo Core plugin.
*
* @package Peptide_Repo_Core
*/
/**
* Related posts card template part.
*