Skip to content

docs(conventions): upstream-drift re-derivation triggers are practiced in five places with no owner doc #1638

Description

@kyle-sexton

Context

Several conventions independently record "this fact was verified against upstream on date X; re-verify when Y happens", but the pattern has no owner doc — which is itself a violation of the one-owner-per-concern rule in docs/PLUGIN-PHILOSOPHY.md's convention registry ("A new cross-plugin convention lands in an owner doc before a second plugin adopts it").

Live instances:

  • docs/conventions/hook-config-delivery/README.md:138 — a ## Recheck triggers section, plus ":103 — is a recheck trigger, not a rewrite of history"
  • docs/conventions/ecosystem-commands/README.md:157 — "Revisit triggers (either fires → re-evaluate)"
  • docs/PLUGIN-PHILOSOPHY.md — per-row "Verified" dates in the component-stances table with a staleness disclaimer
  • docs/OFFICIAL-DOCS.md — per-row verified dates with an explicit warning that the file goes stale
  • docs/MIGRATION-PLAYBOOK.md — "Revisit trigger:" on each rejected-component decision record

Two different names (recheck vs revisit), no shared definition of what a trigger must contain, and no statement of what makes one checkable.

The mechanism question is already settled elsewhere and should be adopted rather than re-derived: there is no usable ETag on the docs site, and Last-Modified is a site-wide deploy stamp rather than per-page, so content hashing is the only viable drift signal. More important than the mechanism is the discipline: a dated verification stamp is an as-of record, never standing authority — anything restating a volatile specific needs a stated re-derivation event, not just a date.

This matters more as the fleet depends on more upstream surfaces. Claude Code changes its own conventions between releases, sometimes with no version bump on the surface in question (the session scratchpad is exactly that shape), and experimental surfaces churn outright — agent teams removed TeamCreate/TeamDelete and deprecated team_name in v2.1.178.

Cost of leaving it: every convention invents its own trigger wording, none are mechanically checkable, and a stale claim reads identically to a fresh one.

Proposed work

  • Create docs/conventions/upstream-drift/ as the owner doc: one name for the concept, the required parts of a trigger (what was verified, against which doc line or URL, on what date, and the observable event that obliges re-verification), and the rule that a date alone is not authority.
  • Record that content hashing is the only viable drift signal, and whether the fleet stores hashes today or defers that.
  • Add the registry row to docs/PLUGIN-PHILOSOPHY.md's convention registry table.
  • Migrate the existing instances to the single name and shape; leave their content intact.
  • Classify enforceability per melodic-software/standards conventions/engineering/enforceability-tiers.md and state which part, if any, is mechanically checkable — e.g. "every Verified <date> row carries a trigger" is a deterministic presence check, while judging whether a trigger has actually fired is reasoning-only.

Acceptance criteria

  • docs/conventions/upstream-drift/README.md exists and defines the trigger's required parts and the date-is-not-authority rule.
  • docs/PLUGIN-PHILOSOPHY.md's convention registry has a row pointing at it.
  • The instances in hook-config-delivery, ecosystem-commands, PLUGIN-PHILOSOPHY.md, OFFICIAL-DOCS.md, and MIGRATION-PLAYBOOK.md use one consistent name and shape.
  • The doc states the enforceability tier of each part and names any deterministic check worth building.
  • The doc points at its sources rather than restating them.

References

  • docs/conventions/hook-config-delivery/README.md:103,138
  • docs/conventions/ecosystem-commands/README.md:157
  • docs/PLUGIN-PHILOSOPHY.md — convention registry; component-stances staleness disclaimer
  • docs/OFFICIAL-DOCS.md — per-row verified dates and staleness warning
  • docs/MIGRATION-PLAYBOOK.md — per-decision revisit triggers
  • melodic-software/standards conventions/engineering/enforceability-tiers.md — deterministic / detect-then-judge / reasoning-only, and the routing rule
  • melodic-software/standards conventions/engineering/documentation-and-citations.md — read-on-demand over snapshots

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: mediumReal value, no hard deadline; normal backlog flow.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions