Skip to content

Comments

Initial skill migration + CI + gated release#1

Open
zayenz wants to merge 2 commits intomainfrom
codex/skills-pr1
Open

Initial skill migration + CI + gated release#1
zayenz wants to merge 2 commits intomainfrom
codex/skills-pr1

Conversation

@zayenz
Copy link
Member

@zayenz zayenz commented Feb 18, 2026

Summary

  • migrate all skills/gecode-* skills from MPG into the new canonical Gecode/gecode-skills repo
  • add repository docs (README.md), license (MIT), and release policy file (.release-policy.yml)
  • add validation and release utility scripts
  • add CI workflow for validation/discovery and release workflow with first-release gating

Included

  1. Skill migration preserving SKILL.md and agents/openai.yaml.
  2. scripts/validate_skills.py:
    • required SKILL.md frontmatter fields (name, description)
    • name == directory
    • uniqueness checks
  3. scripts/compute_next_version.py:
    • semver bump by labels (release:major, release:minor, default patch)
  4. scripts/build_release_notes.py:
    • changed-skill summary + install snippets
  5. .github/workflows/skills-ci.yml:
    • validation + npx --yes skills add . --list smoke discovery
  6. .github/workflows/skills-release.yml:
    • workflow_dispatch manual release
    • push-to-main auto path gated by .release-policy.yml

First Release Policy

  • .release-policy.yml is set to auto_release: false.
  • This keeps the first release manual-only (reviewed workflow dispatch), as required.

Local Validation

  • python3 scripts/validate_skills.py
  • npx --yes skills add . --list

Follow-up

  • after this PR is merged and first manual release is reviewed/published, merge PR-2 (auto_release: true) to enable auto publish on merge to main.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c4a994aeec

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

python - << 'PY'
from pathlib import Path
txt = Path('.release-policy.yml').read_text(encoding='utf-8')
auto = 'auto_release: true' in txt

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Parse release policy key instead of substring matching

In .github/workflows/skills-release.yml, the policy gate uses auto = 'auto_release: true' in txt, which treats comments or unrelated text as authoritative config; for example, a file containing auto_release: false plus a comment like # set auto_release: true later will still enable push-triggered releases. That can unintentionally create tags/releases on main even though the policy value is false, so this should read the actual YAML key/value (or at minimum ignore comments) before setting auto_release.

Useful? React with 👍 / 👎.

Comment on lines 19 to 21
m = TAG_RE.match(first)
if not m:
return (0, 0, 0)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Skip non-semver tags when selecting latest release version

latest_tag() reads git tag --list 'v*' --sort=-v:refname and only validates the first entry; if the top v* tag is non-semver (for example vnext), it returns (0, 0, 0) instead of using the next valid vX.Y.Z tag. In that scenario the workflow computes versions from v0.0.1 and can attempt duplicate or regressive tags despite existing releases.

Useful? React with 👍 / 👎.

if [ -n "$PREV" ]; then
FROM="$PREV"
else
FROM=$(git rev-list --max-parents=0 HEAD)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include root commit changes in first release range

When no prior release tag exists, the workflow sets FROM to the repository root commit, and the notes script diffs ${FROM}..${GITHUB_SHA}; for a first release run on the initial commit, FROM and TO are identical, so release notes incorrectly report no changed skills even though that release introduces them. This makes first-release notes misleading and should use a baseline that includes root-commit additions.

Useful? React with 👍 / 👎.

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