Fold four contribution lessons into the skill
gitlab-contribution: Disclose AI in the MR description, not trailers
The AI disclosure guidance lived only in the docs workflow, and its closing sentence told every writer to keep the description's tool name in sync with an AI-Tools: commit trailer, which a gitlab-org/gitlab commit must not carry. It also said the target's agent guidance allows only two trailers, when that file forbids Co-Authored-By: and names no AI trailer at all.
The MR phase in contribute.md now reads the target's contributor and agent guidance before the description is written, for code and docs changes alike, and its exit criterion checks the disclosure. The commit phase says a gitlab-org/gitlab commit carries no AI disclosure trailer. docs-mr.md states what the guidance file says, scopes the tool-name sync to targets that take the trailer, and adds that a count of other authors' MRs never overrides the target's guidance: a writer once dropped the line after finding that none of three sampled MRs carried it.
filing: Run the duplicate check once per step of a plan
The duplicate check gated one filing on one topic. A multi-step plan checked only on its headline topic left the steps under it unsearched, and a plan reached a maintainer with a step that was already another group's open, blocked bug whose fix MR had closed unmerged.
A paragraph after the Determination table now runs the gate once per step on that step's own mechanism and synonyms, across merge requests as well as issues, following each hit's parent epic and linked items one hop.
filing: Check a parent epic's confidential flag before filing
GitLab's parent-link and epic-issue validations both refuse a public issue under a confidential parent epic, and the error's own suggestion, making the issue confidential, would hide a public report. The filing steps never named the parent epic, so nothing checked the flag before the draft was approved.
The draft step now names any parent epic and checks its confidential flag first. When it is set, the public issue goes under a public ancestor epic and is related to the confidential one instead.
gitlab-contribution: Require full URLs in MR titles and descriptions
The convention-conflicts section scoped the full-URL rule to commit messages and said short refs are fine inside an MR body. The target's own agent guidance extends the rule to MR titles and descriptions, and says Danger fails a description carrying a short reference such as !123, #123, group/project#123, or %12.3.
The table row and the paragraph after it now cover commit messages, MR titles, and MR descriptions. Short refs stay fine in issue bodies and comments, including comments on an MR, which Danger does not scan. The related-issues line in docs-mr.md names a full issue URL.