3.9 KiB
3.9 KiB
PRM-80 PR #12 Final Audit
Date: 2026-06-25
PR: #12
Branch: prm-80-canonical-events -> staging
Latest verified code commit before this audit doc: e13dfe7d468209685596385edc749e5506f9f8a2
Commits In PR
b895d6b-fix: emit canonical service events for PRM-80e13dfe7-fix: keep qscore out of curator tasks
Scope
This PR now covers the PRM-80 canonical Grow Events contract work plus the curator task policy update requested after QA:
- Workflow/service events are normalized into canonical PRM-80 event names before ingestion.
- Workflow bridge events carry
subjectand service identity details instead of storingsubject: null. - Resume, roleplay, QScore analytics/read, and matchmaking workflow paths emit or bridge their canonical service events into
grow_events. - Duplicate canonical service events are kept idempotent through deterministic dedupe behavior.
- Curator no longer assigns
qscore-serviceas a task or handoff service.
Curator QScore Policy Change
QScore remains available as a scoring/readiness projection service for dashboard and backend consumers. It is no longer offered as a curator task.
Files changed:
src/v1/curator/curator-store.tssrc/v1/curator/curator-tools.ts
Behavior added:
- Curator seed generation remaps
qscore-servicetasks to non-QScore services. - Measurement tasks that previously pointed at QScore now point at
assessment-service. - Proof tasks that previously pointed at QScore now point at
resume-service. - Practice tasks that previously pointed at QScore now point at
interview-service. - Recovery tasks that previously pointed at QScore now point at
roleplay-service. - Curator capability listing filters out
qscore-service. prepare_qscore_reviewis disabled for curator task handoffs and returnsqscore_curator_handoff_disabled.
Curator Services Allowed After Change
interview-serviceroleplay-serviceresume-servicecover-letter-servicecourses-serviceassessment-servicematchmaking-servicesocial-branding-service
Excluded from curator task assignment:
qscore-service
Runtime Verification
Backend container:
growqr-backendrebuilt successfully with Docker.growqr-backendrestarted and is healthy.- Root backend health response returned
200 application/jsonwith{"name":"growqr-backend","status":"ok","env":"production"}.
Curator today API verification:
task_count 3
qscore_task_count 0
measurement | assessment-service | Assessment | Check whether confidence is improving | Open assessment
proof | resume-service | Resume | Generate a cleaner role-fit artifact | Open resume workspace
practice | interview-service | Interview | Run one focused interview rep | Open interview preview
Curator 30-day sprint verification:
planned_service_count 90
planned_qscore_count 0
task_qscore_count 0
assessment-service: 30
interview-service: 11
matchmaking-service: 11
resume-service: 21
roleplay-service: 8
social-branding-service: 9
Build verification:
docker compose build backend
Image growqr-backend-backend Built
Remote branch verification:
refs/heads/prm-80-canonical-events -> e13dfe7d468209685596385edc749e5506f9f8a2
PR page verification:
https://git.openputer.com/growqr-app/growqr-backend/pulls/12
HTTP/2 200
PR title: #12 - PRM-80: Emit canonical service events for Grow Events
Latest commit visible: e13dfe7 fix: keep qscore out of curator tasks
Audit Notes
- Only the intended tracked files were committed for the curator update.
- VPS has untracked
.bak.*backup files from prior QA/debug work; these were intentionally not staged or committed. - QScore was not removed from the service registry because dashboard scoring, backend QScore reads, and projection consumers still depend on it.
- The change is limited to curator task assignment/handoff behavior.