Skip to content

chore(skills): reserve the send-transactional-email skill name - #118927

Closed
Silthus wants to merge 2 commits into
PostHog:masterfrom
Silthus:chore/reserve-send-transactional-email-skill
Closed

Silthus wants to merge 2 commits into
PostHog:masterfrom
Silthus:chore/reserve-send-transactional-email-skill

Conversation

@Silthus

@Silthus Silthus commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Problem

PostHog/context-mill#433 adds a send-transactional-email skill. Every consumer overlays context-mill on top of this repo's skills, so a posthog skill or a store skill with that name would be silently overwritten or would shadow it. The skills store list had also drifted: it never reserved instrument-metrics, which the build list already holds.

Tracking: Silthus/posthog#476.

Note

🔵 Merge risk: low · two-way door (merge-risk rubric)

  • The skills store now refuses send-transactional-email and instrument-metrics as store skill names, and hogli lint:skills refuses the first under products/*/skills/. No skill in the tree uses either name.
  • A revert restores the old lists.

Changes

  • hogli lint:skills fails on a product skill named send-transactional-email (reserved_names.py).
  • The skills store refuses send-transactional-email and instrument-metrics (bundled_skills.py).
  • The writing-skills skill, its handbook page, and the feature flags skills README list the new context-mill skill.

How did you test this code?

A scratch product skill named send-transactional-email, asked of both guards, before and after:

Check upstream/master This branch
hogli lint:skills OK: 164 product skill(s) ... passed ERROR: 'send-transactional-email' is owned by PostHog/context-mill ...
'send-transactional-email' in bundled_skill_names() False True
'instrument-metrics' in bundled_skill_names() False True

products/posthog_ai/scripts/test/test_build_skills.py and products/skills/backend/test_bundled_skills.py pass. The pre-push hogli ci:preflight --strict passed with 0 failures.

Test rationale: no new test. A membership assertion would restate the constant. The guards themselves are covered by test_lint_all_catches_reserved_name_in_frontmatter and test_bundled_skill_names_holds_the_tree_and_the_omnibus_names. A test that the two lists match would catch the next drift, but it would import across the isolated products.skills boundary.

Release status

  • No feature flag controls this change

Docs update

The writing-skills handbook page and skill list the new name.

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Agent: Claude Code, Claude Opus 5.5

  • Part of the code-managed email templates work tracked in Silthus/posthog#461. Skills used: /writing-skills, /writing-pr-descriptions.
  • Reviewed together with context-mill#433 by a fresh Opus 5.5 reviewer at high effort: one finding here (a stale README count), fixed, and one rejected (the list-equality test, for the product boundary above).
  • No duplicate: no open PR reserves this name.
  • Public artifact: nothing in this PR comes from outside this repository and the linked public issues.

🤖 Generated with Claude Code

PostHog/context-mill ships a send-transactional-email skill. Every
consumer overlays context-mill on top of this repo's skills, so the
build lint and the skills store must refuse that name here.

The skills store list also gains instrument-metrics, which the build
list already reserved.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trunk-io

trunk-io Bot commented Oct 17, 2026

Copy link
Copy Markdown

Merging to master in this repository is managed by Trunk.

  • To merge this pull request, check the box to the left or comment /trunk merge below.

After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant