Source
Operator decision-session batch 1 (2026-07-19) produced two fleet-wide precedents inside issue-specific rulings. They constrain every plugin, so they belong in docs/PLUGIN-PHILOSOPHY.md (and the portability lint lane #531 should eventually enforce them), not buried in issue comments.
Precedent 1 — two-lane convention posture (from the #415 ruling, operator verbatim there)
- Shipped defaults must be good-practice defaults that cannot conflict in an arbitrary consuming repo.
- The general path: the plugin's setup action/skill discovers the consuming repo's conventions (branch naming, commit structure, patterns) and externalizes them as configuration extensibility points. Pre-prescribed conventions are hardcoded assumptions — dependencies to be externalized.
Precedent 2 — built-in-first customization gate (from the #423 ruling, operator verbatim there)
Before building any custom config surface (YAML concern files, bespoke seams), verify against current official Claude Code plugin documentation whether native mechanisms (plugin userConfig, environment, built-in per-repo config) can host the need. Custom extensibility points are the fallback only where the built-in surface genuinely cannot support it.
Acceptance
Cross-links
#415, #423 (source rulings) · #531 (enforcement lane) · #556 (decision-session skill that produced these)
Source
Operator decision-session batch 1 (2026-07-19) produced two fleet-wide precedents inside issue-specific rulings. They constrain every plugin, so they belong in docs/PLUGIN-PHILOSOPHY.md (and the portability lint lane #531 should eventually enforce them), not buried in issue comments.
Precedent 1 — two-lane convention posture (from the #415 ruling, operator verbatim there)
Precedent 2 — built-in-first customization gate (from the #423 ruling, operator verbatim there)
Before building any custom config surface (YAML concern files, bespoke seams), verify against current official Claude Code plugin documentation whether native mechanisms (plugin userConfig, environment, built-in per-repo config) can host the need. Custom extensibility points are the fallback only where the built-in surface genuinely cannot support it.
Acceptance
Cross-links
#415, #423 (source rulings) · #531 (enforcement lane) · #556 (decision-session skill that produced these)