Commit Graph

6 Commits

Author SHA1 Message Date
peptiderepo
850279e756 feat(cpt): consolidate peptide CPT with PSA; drop pr_peptide (v0.2.0)
Resolves the rewrite slug collision that was 404'ing all 89 production
peptide detail pages. PR Core v0.1.1 registered an empty pr_peptide CPT
claiming /peptides/%postname%/; WP's rewrite resolver picked it over PSA's
populated peptide CPT. This release consolidates both registrations onto a
single peptide CPT owned by PR Core. PSA v4.5.0 drops its registration in
favor of this one.

## Contract (per CTO msg 02)
- POST_TYPE: pr_peptide -> peptide
- TAX_CATEGORY: pr_peptide_category -> peptide_category
- TAX_FAMILY const removed (pr_peptide_family was never populated)
- CPT + taxonomy registration guarded with post_type_exists() / taxonomy_exists()
  so deploy order between PR Core and PSA is forgiving
- Args harmonized as superset of PSA + prior PR Core (thumbnail added to
  supports; capability_type + map_meta_cap preserved)
- Activator: flush_rewrite_rules(false) on activation; new
  maybe_flush_on_version_change() handler hooked at init:999 for in-place
  updates that bypass the activation hook (e.g. SCP deploys)
- uninstall.php: blanket DELETE replaced with JOIN on _pr_core_authored so
  PSA-authored peptide posts (the 89 canonical monographs) are never destroyed;
  peptide_category terms preserved (shared ownership)
- Scrub scope: narrow — CPT-slug-derived identifiers only; class names,
  file names, PR_CORE_* constants, pr_core_* options, and pr-core/v1 REST
  namespace remain

## Docs
- ARCHITECTURE.md: new Key Decision #7 (v0.2.0 consolidation) and §2.9
  Uninstall specification
- CONVENTIONS.md: CPT Ownership rule + _pr_core_authored flag contract

## Tests
- Lightweight harness (tests/bootstrap.php) that stubs the handful of WP
  functions exercised by the CPT class
- tests/unit/test-peptide-cpt.php asserts: constants match contract,
  TAX_FAMILY is removed, guard no-ops when post_type_exists/taxonomy_exists
  returns true, args payload shape (thumbnail in supports, rewrite slug,
  REST namespace), hooks wired
- CI: new 'Unit tests (lightweight, no PHPUnit)' step in lint-php job,
  runs across PHP 8.1/8.2/8.3. Full PHPUnit + wp-env harness is a
  follow-up

Refs: convo/prcore/threads/2026-04-peptides-cpt-collision/02-cto-correction.md
2026-04-22 08:32:00 +00:00
peptiderepo
3162dbe975 ci: add workflow_call trigger so deploy.yml can reuse CI
The deploy workflow references ci.yml as a reusable workflow
via `uses: ./.github/workflows/ci.yml`. Without workflow_call
in the trigger list, GitHub Actions rejects the reference.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-17 17:16:38 +07:00
peptiderepo
843c4746ec ci: add deploy-to-Hostinger workflow
Rsync over SSH on push to main. Runs CI first, then syncs
production files to wp-content/plugins/peptide-repo-core/
on Hostinger. Includes LiteSpeed cache purge and health check.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-17 17:14:30 +07:00
peptiderepo
c9361b0283 fix(ci): restructure CI for PHP 8.1+ and proper PHPCS setup
- Drop PHP 8.0 from matrix — DTOs use readonly properties (8.1+)
- Add composer.json with PHPCS/WPCS as dev dependencies
- Add phpcs.xml.dist for WordPress coding standard config
- Use dealerdirect/phpcodesniffer-composer-installer for auto path setup
- Separate lint jobs: PHP syntax (8.1/8.2/8.3) + PHPCS + file-size
- Update Requires PHP header to 8.1
- Update ARCHITECTURE.md file tree

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-17 07:43:01 +07:00
peptiderepo
106f15e027 fix(ci): pin PHPCS to ^3.13 for WPCS compatibility
PHPCS 4.0.1 was installed first via sequential composer require,
locking the version before WPCS could constrain it. WPCS 3.x
requires PHPCS ^3.x. Fix: install all packages in one command
with --with-all-dependencies and pin PHPCS to ^3.13.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-17 07:40:16 +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