feat: add /send-email skill wrapping sop-email-send #233
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/claude-custom!233
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "232-add-send-email-skill-wrapping-sop-email"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Adds
/send-emailskill that loads the email SOP from pal-e-docs and guides agents through the compose → test → approve → blast workflow.Changes
skills/send-email/SKILL.md— new skill file with YAML frontmatter, instructions to readsop-email-sendandarch-email, quick reference table (layouts, test email, endpoint), and red flags section for safety gate enforcementTest Plan
nameanddescription/send-emailinvocation loads the skill and directs to the SOPReview Checklist
sop-email-sendandarch-emailvia MCP callsRelated Notes
sop-email-send— the SOP this skill wrapsarch-email— email system architecture referenceproject-westside-basketball— parent projectPR #233 Review
DOMAIN REVIEW
Tech stack: Claude Code skill file (Markdown with YAML frontmatter). Domain: agent configuration / skill authoring for the claude-custom repo.
Frontmatter structure: The skill has
nameanddescriptionfields. Thedescriptionstarts with "Use when" which matches the convention visible in the system-reminder skill listing. This is correct.Missing optional frontmatter fields:
argument-hint-- acceptable since/send-emailtakes no arguments (the SOP drives the workflow).disable-model-invocation-- acceptable since this skill needs the model to execute MCP calls and follow the SOP interactively.context: fork-- acceptable; the skill does not need session isolation.Pattern compliance: The skill follows the delegation pattern established by
/board-statusand/board-sync-- a thin SKILL.md that points to a pal-e-docs SOP via MCP call. The heavy content lives insop-email-send, not inline. This is the correct architecture.MCP call format: The skill references
mcp__pal-e-docs__get_note(slug="sop-email-send")andmcp__pal-e-docs__get_note(slug="arch-email")-- correct tool names and syntax.Safety gates: The Red Flags section is well-constructed. It covers:
This aligns with
feedback_no_email_without_five_approvals.mdandfeedback_never_email_without_approval.mdfrom MEMORY.md.Word count: The file is 32 lines / approximately 160 words of content (excluding frontmatter). Well under the 200-word budget stated in the PR review checklist.
BLOCKERS
None.
This is a 32-line skill file that delegates to an SOP. The BLOCKER criteria (test coverage for new functionality, unvalidated user input, secrets, DRY violations in auth paths) do not apply to a declarative Markdown skill definition. The skill itself does not execute code -- it instructs the agent to read and follow an SOP that contains the actual logic and safety gates.
NITS
Quick Reference section could drift from SOP. The inline quick reference (layouts, test email, endpoint) duplicates information that presumably lives in
sop-email-sendandarch-email. If the SOP changes the endpoint or adds a layout, this skill will be stale. Consider whether the Quick Reference adds enough value to justify the maintenance burden, or whether the SOP alone is sufficient. This is a judgment call, not a blocker -- the current content is accurate and useful as a fast reminder.Test email address is hardcoded.
draneylucas@gmail.comis hardcoded as the test email. If this ever changes, it needs updating in both the SOP and this skill. Not a secret (it is a personal email used for testing, not a credential), but it is a hardcoded value that could drift.No step for loading the SOP references the basketball-api context. The description says "through basketball-api" but the instructions do not explicitly tell the agent to check basketball-api connection/availability. The SOP likely handles this, so this is informational only.
SOP COMPLIANCE
232-add-send-email-skill-wrapping-sop-emailreferences #232)Closes #232present in PR bodyPROCESS OBSERVATIONS
Clean, minimal PR. The skill correctly follows the thin-wrapper pattern: SKILL.md is the trigger surface, pal-e-docs SOPs hold the logic. This keeps the claude-custom repo lightweight and ensures SOP updates propagate without needing skill file changes.
The test plan includes real-world validation (contract reminder email via basketball-api tickets #750-752), which is appropriate for a skill that cannot be unit-tested in isolation.
Deployment frequency: no risk. This is additive (new file only, no modifications to existing skills or hooks). Change failure risk: negligible.
VERDICT: APPROVED