Loading
Sync postgresai skill from the GitLab monolith
What does this MR do and why?
The postgresai skill moves to the GitLab monolith as its source of truth, and this repo becomes the destination. Changes will arrive through the sync job instead of direct edits here. The reasoning is in the origin discussion linked below.
Related Issues
- Origin discussion: gitlab-org/gitlab!258924 (comment 3963912878)
- Companion MR: gitlab-org/gitlab!260040 (merged)
- Merge order: gitlab-org/gitlab!260040 (merged) first, then !152 (merged). This MR stays Draft until then.
Testing
bin/ci-checks passes locally. A reviewer dry run of the sync with the corrected path showed no drift against the monolith MR's copy.
Performance Analysis
- This merge request does not introduce any performance regression. There is no runtime code in this change.
Agent context: manifest and doc changes, path reasoning, sync behavior, follow-ups
- Manifest:
synced-skills.ymlgetspostgresaiwithsource_project: gitlab-org/gitlab,source_path: .claude/skills/postgresai,source_ref: master,mode: mr. - Source SHA: gitlab-org/gitlab!260040 (merged) was at
4c879399de2bbc0ae1b34e88be530d6a636604a7(branchdgruzd/postgresai-skill-ssot) when I wrote this. - Why
.claude/skills: in gitlab-org/gitlab,.agents/skillsis a symlink to../.claude/skills, and the repository tree API returns 404 for paths through it. The sync would fail on every run with the.agentspath. - Docs:
doc/synced-skills.mdlists the skill and uses the new path.CONTEXT.mdandAGENTS.md/CLAUDE.md(kept byte-identical) now say syncs come from the scheduled job or a manual run ofsync-skills, because no pipeline schedule exists today. The revoked sync bot token id indoc/synced-skills.mdis replaced with the active one, confirmed through the API. - No changes to
skills/postgresai/. The first sync brings in the updated Contributing section and the1.0.2version bump from the monolith MR. - Sync behavior: it mirrors the whole skill directory,
scripts/andtests/included, sotest_joe.sharrives with the skill. It deletes local files missing upstream. The Claude Codeplugin.jsonand the catalog entry live outsideskills/postgresai/and aren't touched. Once synced, the edit guard blocks direct changes toskills/postgresai/. - Validation:
bin/ci-checks. I didn't runscripts/sync_external_skills.py --checkmyself, since the upstream path didn't exist yet. - Follow-ups:
- The guard exemption is an OR (bot login or
sync/*branch), but the doc says both are required. - Files the sync creates get mode
0644, so a new upstream script would lose its executable bit. - No pipeline has run here because of
[skip ci]. We should run one before merging.
- The guard exemption is an OR (bot login or
Edited by Dmitry Gruzd