peptiderepo
f7df9cfc06
style: auto-fix PHPCS violations via phpcbf
2026-06-23 04:25:02 +00:00
peptiderepo
1ce471981b
feat: PRAB article JSON-LD emitter + meta reader (v0.8.0)
...
- PR_Core_Jsonld_Article: meta-triggered emitter for PRAutoBlogger posts
(trigger: _prab_schema_version=1 on post type). Yoast path retypes page
node to MedicalWebPage (wpseo_schema_webpage_type priority 10) and enriches
Article piece with citation[], about[]→Drug @id, lastReviewed, honest
reviewedBy (wpseo_schema_graph priority 13). No-Yoast fallback emits
standalone @graph. Posts without trigger meta are byte-unchanged.
- PR_Core_Prab_Meta_Reader: sanitises all _prab_* contract-v1 meta at read
time. URLs validated (http/https), DOIs normalised to https://doi.org/ URI,
JSON arrays per-element validated, WP user ID resolved. Malformed values
degrade gracefully. Honest reviewedBy: Person ONLY when mode=human + valid
user ID; else Organization. Never a fabricated person.
- Unit tests: JsonldArticleTest.php — 22 assertions covering is_triggered,
review_mode, reviewed_by Person/Org decision tree, citation sanitization,
DOI normalisation, about linkage, retype passthrough, enrich, no-new-nodes,
editorial-system-never-person.
- bootstrap.php: WP_User stub + get_userdata reads pr_test_userdata global.
- ARCHITECTURE.md: updated JSON-LD class tree + PRAB emission section.
- CONVENTIONS.md: PRAB contract v2 extension guide added.
- CHANGELOG.md + version bump to v0.8.0.
Ratified contract: convo/prcore/decisions/2026-06-11-jsonld-contract-v1.md
File sizes: article.php=235L, meta-reader.php=265L (both < 300-line gate).
No duplicate Article/WebPage nodes. uninstall.php unaffected (_prab_* unowned).
Agent-Session: prcore-jsonld-article-20260622
2026-06-23 04:23:21 +00:00
peptiderepo
665d7fa9e1
Adopt reusable CI standard + PHPUnit conversion ( #22 )
...
Squash-merge of PR #22 : adopt shared reusable CI workflow, convert PHPUnit to stubs, update branch-protection contexts.
QA-approved at 05d8094a1d . All required CI checks green.
Agent-Session: 2026-06-17-prcore-ci-deploy
2026-06-17 01:12:00 +07:00
peptiderepo
d0b5875fd8
peptide-repo-core v0.6.2: inject Drug/FAQ via wpseo_schema_graph (fix peptide-page fatal) ( #21 )
...
v0.6.0 hooked wpseo_schema_graph_pieces with plain arrays; Yoast expects Abstract_Schema_Piece objects (get_class/is_needed) -> fatal on peptide singles. Inject Drug+FAQ as array nodes via wpseo_schema_graph (prio 12) instead. +regression test.
QA: APPROVE — qa-reviews/peptide-repo-core/2026-06-13-0bbb75fd2689f375b9d154fc0ed0b0098a1865b6.md
Agent-Session: jsonld-peptide-piece-fix v0.6.2 merge
2026-06-13 14:25:04 +07:00
peptiderepo
118f301705
peptide-repo-core v0.6.1: fix Yoast webpage-type TypeError on singular pages ( #20 )
...
Accept string|array in retype_to_medical_webpage (Yoast wpseo_schema_webpage_type passes array on singular pages); normalize @type comparison; add regression test.
QA: APPROVE — qa-reviews/peptide-repo-core/2026-06-13-077c4b0e518f682721abe6a115eac9bb2bf18186.md
Agent-Session: jsonld-webpage-typefix v0.6.1 merge
2026-06-13 13:52:46 +07:00
peptiderepo
e9d97b51e2
peptide-repo-core v0.6.0: peptide schema backfill + Yoast-integrated Drug/MedicalWebPage/FAQ ( #19 )
...
Backfill psa_*->_pr_* meta (migration 0004 + PubChem fallback); enrich Drug node with {permalink}#drug @id + molecularFormula/Weight/alternateName; rewrite emitter into Yoast schema graph (MedicalWebPage retype + FAQPage, no duplicate nodes).
QA: APPROVE (independent) — qa-reviews/peptide-repo-core/2026-06-13-817690c1b6ec2118ddcf3b8cfe8bc5ea7f3933b3.md
Agent-Session: peptide-schema-backfill v0.6.0 merge
2026-06-13 13:09:56 +07:00
peptiderepo
c52cf9b3d6
feat: verification scanner + admin UI (PR Core v0.4.0)
...
Implements recurring verification scanner, dashboard widget, per-post sidebar meta box, reader-facing last-verified display, and unified settings panel. Bumps to v0.4.0.
Co-authored-by: peptiderepo <peptiderepo@users.noreply.github.com >
2026-04-27 12:24:57 +07:00
peptiderepo
808b2509d8
feat: initial peptide-repo-core plugin (v0.1.0) — canonical schema sprint
...
Implements ADR-0002: canonical peptide schema as shared data layer for
the peptiderepo.com ecosystem. All Tier 1 tools (Reconstitution Calculator,
Dosage Reference, Legal Status Tracker, PSA enhancements) build on this.
Includes:
- pr_peptide CPT with REST, taxonomies, 11 meta fields
- 3 custom tables: pr_dosing_rows, pr_legal_cells, pr_ai_candidate_queue
- Sequential migration runner with schema versioning
- 4 typed DTOs and 4 repository classes (full CRUD)
- REST API (pr-core/v1): 6 endpoints (read public, write auth-gated)
- Admin UI: 3 meta boxes, custom columns, AI candidate queue page
- Shared disclaimer component (shortcode + static API)
- JSON-LD Drug schema emission on single peptide pages
- Seed data fixture (3 peptides, 10 dosing rows, 5 legal cells)
- Full teardown in uninstall.php
- CI: PHP lint 8.0-8.2, PHPCS WordPress, 300-line check
All 22 PHP files under 300 lines. Highest: peptide-cpt at 265.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-17 07:36:12 +07:00