Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

Aspire Data Audit

merged#2469CedarCopilot

CedarCopilot wants to merge 0 commits into staging from chore/aspire-playbook-toolchain-and-audit-docs

Live on prod, no production signal yetTimeline and evidence
  1. Opened
    Aug 13, 2026, 4:22 PM
  2. Merged
    Aug 13, 2026, 7:53 PM
  3. Live on prod
    Aug 13, 2026, 7:53 PM
  4. Observed 3 hours
    Aug 13, 2026, 7:53 PM
  5. Pipelines steady after this deploy
    Aug 13, 2026, 7:53 PM
  6. Unobserved

    Live on prod, no production signal yet

    Aug 13, 2026, 10:35 PM

Behaviors Libra is checking

AOP context behavior from db/aop-schema.ts keeps working in prod.Inconclusivelow confidence

Strict CloudWatch fallback saw 169 success-shaped log lines matching pipeline, analytics, quota, aop, but no tied operation was present, so Libra is not calling this working.

prod, checked Aug 13, 2026, 9:35 PM
CRM integration behavior from crm/deal-metrics.ts, crm/deal-timeline.ts, crm/stage-inference.ts keeps working in prod.Inconclusivelow confidence

Strict CloudWatch fallback found 1 recent prod failure log lines for [UpdateExternalCrmWorkflow] Driver update failed (Step updateDeal failed: HTTP 400: {\), but the same failure had 8 log lines in the comparable pre-deploy baseline. Libra is not blaming this PR intent without.

prod, checked Aug 13, 2026, 9:35 PM
Pipeline analytics behavior from scripts/aspire-canon-pipeline.sh keeps working in prod.Inconclusivelow confidence

Strict CloudWatch fallback saw 513 success-shaped log lines matching pipeline, analytics, quota, aop, but no tied operation was present, so Libra is not calling this working.

prod, checked Aug 13, 2026, 10:35 PM

Libra has verdicts on 0 of 3 tracked behaviors on prod; 3 are still being checked. Libra checks hourly for 3 days after each deploy.

Preserves the AspireIQ playbook-build work and captures the reusable method for future audits. Grounded in org 2d2b90fb (AspireIQ). No changes to product/runtime code.

What's here (5 commits)

  • fix(taxonomy) , write-agentic was dropping objection.response / use_case / feedback from CANONICAL_FIELDS; restored.
  • feat(data-audit) , the taxonomy→playbook build toolchain: deterministic rollup (aspire-persona-rollup.ts), apply-curation.py, inject-taxonomy-into-playbook.py, aspire-canon-pipeline.sh, run wrapper, aspire-playbook-rendercheck.mjs (render-smoke harness), + write-judgment.ts PG_ONLY/scoped restore.
  • docs(data-audit) , reusable, in the skill entrypoint: resources/playbook-build-runbook.md (org-agnostic build manual) + PROCESS-DELTAS.md (8 method deltas vs the canonical skill, staged for reconciliation); SKILL.md points to both.
  • chore(aspire) , authored inputs under docs/audits/aspire/ (funnel-per-deal, themes, use-case defs + quote-excludes, pricing groups, per-persona curation, vocab canon/seed) + the handoff doc.
  • chore(aspire) , deliverables moved to docs/audits/aspire/artifacts/ (playbook SPA + data-lineage); requirements doc renamed → aspireiq-audit-handoff.md (the account's single source of truth).

Deliberately not committed

Regenerable rollup dumps, candidate pools, and the 15 MB judgment-backfill/ (data is back in the DB) , all rebuild via the toolchain.

Open decisions (tracked in PROCESS-DELTAS.md)

  • The presentation metrics (one-sided win-lift, landing score) carry no p-values / significance yet.
  • The playbook is a bespoke SPA, off the documented chapter-format/build.py deliverable path , sanction as a new template vs migrate.
  • The documented deal-intelligence-critique pass hasn't been run over the playbook.

🤖 Generated with Claude Code

https://claude.ai/code/session_01M6QhCHuWDjeRtdNArHoLEg

Greptile Summary

The PR adds an AspireIQ-specific taxonomy-to-playbook toolchain, reusable audit process documentation, curated inputs, and generated HTML deliverables. It also expands taxonomy writer coverage and adds a Postgres-only judgment restore mode.

  • Adds deterministic rollup, curation, injection, and render-smoke scripts.
  • Documents the reusable build workflow and unresolved deviations from the canonical audit process.
  • Commits AspireIQ curation inputs, handoff material, data lineage, and the generated sales playbook.
  • Updates taxonomy writing to derive instance fields from the field registry.

Confidence Score: 3/5

The PR should not merge until the one-shot pipeline propagates failures and the PG_ONLY restore can no longer leave searchable judgment data stale.

The documented build command currently reports success despite failed or absent stages, while the new Postgres-only restore creates a split state between Postgres and Turbopuffer that existing intelligence searches can observe.

Files Needing Attention: apps/server/scripts/aspire-canon-pipeline.sh, apps/server/scripts/write-judgment.ts

Important Files Changed

FilenameOverview
apps/server/scripts/aspire-canon-pipeline.shAdds the documented one-shot orchestration, but suppresses every child failure and references two absent wrappers.
apps/server/scripts/write-judgment.tsAdds a Postgres-only restore path that temporarily leaves searchable Turbopuffer judgment data stale.
apps/server/scripts/write-agentic.tsReplaces a hand-maintained field allowlist with registry-derived routing and rejects unknown assembled fields.
apps/server/scripts/aspire-persona-rollup.tsAdds the deterministic AspireIQ aggregation pipeline; several data assumptions remain operationally specific and it violates the absolute-import convention.
apps/server/scripts/inject-taxonomy-into-playbook.pyAdds deterministic taxonomy and curat
Show production surfaces and changed-file mapping

Production surfaces

Libra has not measured any production surfaces for this change yet.

Changed files → surfaces

  • .claude/skills/account-setup-from-transcript/SKILL.mdno production surface mapped
  • .claude/skills/data-audit-prep/SKILL.mdno production surface mapped
  • .claude/skills/data-audit/PROCESS-DELTAS.mdno production surface mapped
  • .claude/skills/data-audit/SKILL.mdno production surface mapped
  • .claude/skills/data-audit/resources/playbook-build-runbook.mdno production surface mapped
  • .claude/skills/field-extraction/SKILL.mdno production surface mapped
  • .claude/skills/vocab-extraction/SKILL.mdno production surface mapped
  • .cursor/skills/account-setup-from-transcript/SKILL.mdno production surface mapped
  • apps/server/.claude/skills/deal-intelligence-analysis/SKILL.mdno production surface mapped
  • apps/server/scripts/apply-curation.pyno production surface mapped
  • apps/server/scripts/apply-vocab-canon.tsno production surface mapped
  • apps/server/scripts/aspire-canon-pipeline.shno production surface mapped
  • apps/server/scripts/aspire-persona-rollup.tsno production surface mapped
  • apps/server/scripts/aspire-playbook-rendercheck.mjsno production surface mapped
  • apps/server/scripts/aspire-relabel-rows.tsno production surface mapped
  • apps/server/scripts/dump-sample.tsno production surface mapped
  • apps/server/scripts/eval-new-fields.tsno production surface mapped
  • apps/server/scripts/inject-taxonomy-into-playbook.pyno production surface mapped
  • apps/server/scripts/resync-relabeled-tp.tsno production surface mapped
  • apps/server/scripts/run-apply-vocab-canon.mjsno production surface mapped
  • apps/server/scripts/run-aspire-persona-rollup.mjsno production surface mapped
  • apps/server/scripts/run-aspire-relabel-rows.mjsno production surface mapped
  • apps/server/scripts/run-resync-relabeled-tp.mjsno production surface mapped
  • apps/server/scripts/seed-org-taxonomy.tsno production surface mapped
  • apps/server/scripts/taxonomy-eval/extract-workflow.jsno production surface mapped
  • apps/server/scripts/write-agentic.tsno production surface mapped
  • apps/server/scripts/write-judgment.tsno production surface mapped
  • apps/server/src/db/aop-schema.tsno production surface mapped
  • apps/server/src/services/crm/__tests__/persist-stage-arc.test.tsno production surface mapped
  • apps/server/src/services/crm/deal-metrics.tsno production surface mapped
  • apps/server/src/services/crm/deal-timeline.tsno production surface mapped
  • apps/server/src/services/crm/stage-inference.tsno production surface mapped
  • apps/server/src/services/crm/taxonomy-extraction-step.tsno production surface mapped
  • apps/server/src/services/turbopuffer/__tests__/field-values-search.test.tsno production surface mapped
  • apps/server/src/services/turbopuffer/field-values-search.tsno production surface mapped
  • apps/server/src/subagent-admin/cli.tsno production surface mapped
  • docs/audits/aspire/artifacts/aspire-discovery-questions-EXTERNAL.mdno production surface mapped
  • docs/audits/aspire/artifacts/aspire-discovery-questions-INTERNAL.mdno production surface mapped
  • docs/audits/aspire/artifacts/aspireiq-data-lineage.htmlno production surface mapped
  • docs/audits/aspire/artifacts/aspireiq-sales-playbook.htmlno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-business-themes.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-feedback-themes.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-funnel-per-deal-amount.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-funnel-per-deal.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-pricing-groups.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-prompt-rewrite-output.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-segment-data-README.mdno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-segmentation180-out.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-sel-angles.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-sel-executive.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-sel-objections.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-sel-practitioner.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-sel-program_leader.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-sel-supporting.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-usecase-defs.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspire-usecase-quote-excludes.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspireiq-vocab-canon-2026-08-11-v2.jsonno production surface mapped
  • docs/audits/aspire/artifacts/data/aspireiq-vocab-canon-2026-08-11.jsonno production surface mapped
  • docs/audits/aspire/aspireiq-audit-handoff.mdno production surface mapped
  • docs/audits/aspire/scope/aspire-extraction-targets.mdno production surface mapped
  • docs/audits/aspire/scope/aspire-playbook-subset.mdno production surface mapped
  • docs/audits/aspire/scope/aspireiq-timeline-recovery-plan.mdno production surface mapped
  • docs/audits/aspire/taxonomy/aspire-canon-discovery.mdno production surface mapped