Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

feat(skills): add triage-enablement skill

merged#2932CedarCopilot

CedarCopilot wants to merge 0 commits into staging from feat/triage-enablement-skill

Live on prod, 0 of 1 surfaces working, 2 days leftTimeline and evidence
  1. Opened
    Sep 24, 2026, 11:45 AM
  2. Merged
    Sep 24, 2026, 12:52 PM
  3. Live on prod
    Sep 24, 2026, 12:52 PM
  4. Observed 0 hours, 1 surface, 0 requests
    Sep 24, 2026, 12:52 PM
  5. Watching

    Live on prod, 0 of 1 surfaces working, 2 days left

    Sep 24, 2026, 12:52 PM
  6. Pipelines steady after this deploy
    Sep 24, 2026, 12:52 PM

Behaviors Libra is checking

An approved playbook change is shown in full before dispatch, then applied by a subagent only after explicit approval using a rollback snapshot, sanctioned service/admin writes, surgical edits, and post-write verification.Not checked
prod
The skill classifies every transcript-supported issue into playbook modifications, deeper investigations, or feature requests, records evidence and who raised it, assigns difficulty, and renders an inline difficulty diagram.Not checked
prod
A meeting-ended event can parse the customer and date from the meeting title, fire a Claude Code routine with the transcript, and post the resulting difficulty map and triage link to Slack while ignoring bot-originated Slack messages.Not checked
prod
Each deeper-investigation item is automatically sent to a parallel Sherlock subagent for evidence-based root-cause analysis, with findings written to a per-item file and no database, Slack, monitor, or pull-request writes.Not checked
prod
The skill persists the complete triage in customer/date-scoped triage.md and updates each item with checkbox status, decision, and follow-up as the user walks through the list.Not checked
prod
Each playbook-modification item receives an exact proposed change, target agent and blast radius, plus separate record-only behavior replay and read-only persistence proof, without applying the change.Not checked
prod

Libra found 1 production surface on prod but could not judge any of them yet. 1 surface had no requests at all. Libra checks hourly for 3 days after each deploy.

What

Adds a triage-enablement Claude Code skill. Given a customer and an enablement-call date, it:

  • finds the meeting and pulls the full transcript from the meetings bucket (the recorder notes alone overstate and rename things), stating the source at the top
  • triages into playbook changes / needs investigation / feature requests, ranked by difficulty
  • runs one Sherlock-style investigation subagent per investigation item, automatically and in parallel
  • gives every playbook change a package: proposed diff, agent, blast radius, and a dry run proven not to persist
  • holds interim findings and sends one rollup message at the end; the rollup is inline in chat, with no need to open a file
  • applies approved changes through subagents only (dry run first, snapshot, surgical patch, verify, rollback file)
  • writes a plain rep-facing wrap-up message when the user is done

Only .claude/skills/triage-enablement/SKILL.md is added. Nothing else changes.

Notes for review

  • The skill writes per-customer output to docs/enablement-triage/<customer>/<date>/. That folder holds transcript quotes and deal names, so it should not be committed.
  • The automatic meeting-ended trigger is described in the skill but not built here.

Verify

Run /triage-enablement <customer> <date> against a recent enablement call and check that the source line, the rollup format and the per-change packages come out as described.

🤖 Generated with Claude Code

RetriggerConfidence Score: 0/5

This PR should not merge until transcript retrieval, customer-data storage, and review of proposed changes before approval are corrected.

Findings

  1. P1 Incorrect meetings bucket name ▶
  2. P1 Null keys lose transcripts ▶
  3. P1 Security Customer artifacts are not ignored ▶
  4. P1 Approvals hide proposed changes ▶
  5. P2 Evaluator cannot prove dry runs ▶
Fix with agent prompt
### Issue 1
.claude/skills/triage-enablement/SKILL.md:29
The skill directs transcript lookup to `cedar-aws-staging-meetings-619071350399`, but the configured staging bucket is `cedar-aws-staging-meetings-619071350399-us-east-1`. Even when a meeting has a valid transcription key, this lookup targets the wrong bucket and can make the triage fall back to recorder notes instead of the full transcript.

### Issue 2
.claude/skills/triage-enablement/S
Show production surfaces and changed-file mapping

Production surfaces

SurfaceRequestsErrorsp95UsersVerdict
/v1/claude_code/routines/<id>/fire0 → 00 → 0 (0%)not measured0No traffic
No requests recorded since this deploy.

Changed files → surfaces

  • .claude/skills/triage-enablement/SKILL.mdno production surface mapped
  • .gitignoreno production surface mapped