Latent debt surfaced by the reusable PHPCS job (previously continue-on-error).
PHPCS fixes (all pre-existing, not introduced by this PR):
- Add @package PeptideReconstitutionCalculator to file docblocks in all 12 PHP
files (previously missing; phpcbf cannot insert missing docblock tags).
- Replace two short-ternary ?: operators in class-prc-preset-provider.php with
full ternary (Universal.Operators.DisallowShortTernary.Found; lines 136+152).
JS lint fix:
- Add package.json + package-lock.json (no deps; lint script = node --check)
so the reusable lint-js job's npm ci / cache: npm steps succeed. The
calculator ships vanilla JS with no build toolchain — package.json is the
minimal stub the reusable workflow requires for has_js: true.
Agent-Session: claude/adopt-ci-20260616
Replaces the repo-local staging/smoke/production jobs with a single call to
peptiderepo/peptide-e2e/.github/workflows/deploy-app.yml. Deploy logic is now
centralized; this repo just passes its target_path. Pilot for the rollout.
Agent-Session: cto adopt-reusable-deploy
Co-authored-by: peptiderepo <peptiderepo@users.noreply.github.com>
listPullRequestsAssociatedWithCommit is eventually-consistent after a squash
merge; the single immediate call intermittently flagged legit merges as
'direct push to main'. Now polls up to 5x/10s before opening an issue.
Agent-Session: cto audit-race-fix
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>
Rsync over SSH on push to main. Runs CI first, then syncs
production files to wp-content/plugins/peptide-reconstitution-calculator/
on Hostinger. Includes LiteSpeed cache purge and health check.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
P1 fix: Add class_exists() guard in PRC_Preset_Provider before
instantiating PR Core repository classes. If PR Core constant is
defined but classes fail to autoload, fall back to defaults instead
of crashing.
P2 fixes:
- Remove unused nonce from wp_localize_script (all endpoints public)
- Add cross-reference comments pinning SYRINGE_UNITS_PER_ML across
PRC_Math, calculator.js, and prcConfig.syringeUnits
QA verdict: qa-reviews/peptide-reconstitution-calculator/2026-04-17-9aa5309.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>