CedarCopilot wants to merge 0 commits into staging from chore/taxonomy-refresh-ops-tooling
Live on prod, no production signal yet
OTEL fallback found no prod spans matching scripts/taxonomy-ops/backup-delete-extractions.ts --commit since deploy.
OTEL fallback found no prod spans matching scripts/taxonomy-ops/backup-delete-extractions.ts since deploy.
OTEL fallback found no prod spans matching scripts/taxonomy-ops/backup-org-taxonomy.ts since deploy.
OTEL fallback found no prod spans matching scripts/taxonomy-ops/refresh-org-taxonomy.ts --dry-run since deploy.
OTEL fallback found no prod spans matching scripts/taxonomy-ops/refresh-org-taxonomy.ts since deploy.
OTEL fallback found no prod spans matching scripts/taxonomy-ops/refresh-org-taxonomy.ts since deploy.
Libra has verdicts on 0 of 7 tracked behaviors on prod; 7 are still being checked. Libra checks hourly for 3 days after each deploy.
The reusable scripts used to bring Pirros / Aspire / Vooma onto the current DealsOrgFieldDefaults taxonomy (with their personalized vocab) ahead of re-extraction. Prod-connecting, guarded, dry-runnable.
refresh-org-taxonomy.ts , vocab-preserving taxonomy refresh. CRM (background:false) fields kept verbatim behind a byte-identical guard (refuses to write if they'd change); canonical fields set to the new structure with customer-authored options preserved (--seed to add, --reset to force a key to default); legacy background fields dropped by omission. --dry-run first.backup-org-taxonomy.ts , read-only field-def + seeded-vocab snapshot (restore point).backup-delete-extractions.ts , backs up (JSONL) then scoped-deletes old taxonomy extractions (field_id IN 29 canonical + org legacy); never touches CRM/scalar values; --commit-gated.pirros-vocab-seed.json / vooma-vocab-seed.json , the vocab seeded per org (from their vocab docs). Aspire needed none , its DB vocab was preserved in place..gitignore , excludes the local backup artifacts (large JSONL row dumps stay local).value_driver reset to default.roi_pricing call type).🤖 Generated with Claude Code
https://claude.ai/code/session_018Tggg2sBmoV3cCZGMvpsdX
The PR adds production-oriented tooling to back up, refresh, and remove organization taxonomy data while preserving customer vocabulary and CRM definitions.
The PR should not merge until the destructive delete scope and backup race are fixed and reset reliably takes precedence over seeded vocabulary.
The delete command can include arbitrary non-taxonomy field IDs and can delete rows inserted after its backup snapshot, while the refresh command silently reapplies seed values to fields explicitly requested for reset.
Files Needing Attention: apps/server/scripts/backup-delete-extractions.ts, apps/server/scripts/refresh-org-taxonomy.ts
| Filename | Overview |
|---|---|
| apps/server/scripts/backup-delete-extractions.ts | Adds commit-gated backup and deletion, but does not validate operator-supplied legacy IDs and does not make backup and deletion atomic. |
| apps/server/scripts/refresh-org-taxonomy.ts | Rebuilds canonical definitions while preserving CRM fields and customer vocabulary, but seed application overrides reset semantics. |
| apps/server/scripts/backup-org-taxonomy.ts | Expands the read-only organization backup report with canonical, legacy-background, CRM, and customer-vocabulary summaries. |
| apps/server/scripts/run-backup-delete-extractions.mjs | Builds and invokes the delete utility while forwarding arguments unchanged. |
| apps/server/scripts/run-refresh-org-taxonomy.mjs | Builds and invokes the refresh utility while forwarding seed and reset options unchanged. |
| apps/server/scripts/pirros-vocab-seed.json | Defines organization-specific customer vocabulary for Pirros. |
| apps/server/scripts/vooma-vocab-seed. |
Libra has not measured any production surfaces for this change yet.