Agent skill

Chamilo Changelog Updater

by chamilo in chamilo/chamilo-lms

Adds commits for a new Chamilo release to the changelog page, classifying them into categories and skipping those already listed for that version.

GPL-3.0Auto-check passedDevelopment

Install Chamilo Changelog Updater

skills CLI
$ npx skills add chamilo/chamilo-lms --skill update-changelog -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install chamilo/chamilo-lms update-changelog --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/chamilo/chamilo-lms.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/update-changelog .claude/skills/update-changelog && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
update-changelog
GitHub stars
1k
Token cost
~4.2k tokens
SKILL.md length
2,165 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
GPL-3.0

At a glance

Adds commits for a new Chamilo release to the changelog page, classifying them into categories and skipping those already listed for that version.

  • Works in 8 steps: Determine the target version → Determine the commit range → Apply the gitlog.php filtering rules → …
  • Preparing a release entry in the Chamilo changelog
  • SKILL.md covers Step 1: Determine the target…, Step 2: Determine the commit…, Step 3: Apply the gitlog.php… and Step 4: Classify commits into…, plus 5 more sections
  • Calls git; reaches task.beeznest.com

What it does

This skill updates the changelog page of the Chamilo learning management system with commits for a new release. It applies the filtering and formatting rules from the repository's packaging git-log script, classifies each commit into changelog categories and reports a line-count summary per category.

The changelog is progressive, so a version section can be created and then updated several times before the release tag exists. The agent asks which version number to add or update, checks whether that version's section already exists by its anchor, and finds commits not yet listed by collecting every commit SHA already present across all categories of that section. It then runs a per-commit check against the whole section to drop duplicates caused by a wrong boundary, and it can also work from a pre-curated list of formatted entries that you supply.

When your agent uses it

  • Preparing a release entry in the Chamilo changelog
  • Adding new commits to an existing version section
  • Checking that commits are not already listed in the changelog
  • Classifying commits into changelog categories

Example prompts

  • “Update the changelog for the version I'm preparing.”
  • “Add the commits since the last entry to the changelog section for this release.”
  • “Check that none of these commits are already listed in the changelog.”

Requirements

  • A checkout of the Chamilo LMS repository with its git history

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Determine the target version
  2. Determine the commit range
  3. Apply the gitlog.php filtering rules
  4. Classify commits into categories
  5. Build each line
  6. Ask for the release codename
  7. Write or update the changelog
  8. Report

What it can do on your machine

Read from SKILL.md and the folder at commit 9576a86. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • task.beeznest.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Chamilo Changelog Updater loads about 4.2k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 2,165 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~100
When it runs · the whole SKILL.md, loaded when a task matches
~4.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from chamilo/chamilo-lms at commit 9576a86, republished under its GPL-3.0 licence (© chamilo). 2,165 words, ~4,173 tokens.

Download SKILL.mdSave it as .claude/skills/update-changelog/SKILL.md (or your agent's skills folder).
name
update-changelog
description
Update public/documentation/changelog.html with commits for a new Chamilo release. Applies the filtering and formatting rules from tests/scripts/packaging/gitlog.php, classifies commits into changelog categories, and reports a line-count summary per category. Use when the user wants to update the changelog, prepare a release entry, add a version section, or runs /update-changelog.

Update Changelog

Update public/documentation/changelog.html with the commits for a new Chamilo release. The changelog is progressive: a version section may be created and updated multiple times before the release tag is actually set. Handle both cases.


Step 1: Determine the target version

Ask the user: "Which version number are we adding or updating? (e.g. 3.0.2)"

Once you have the version, check whether a section for it already exists in public/documentation/changelog.html by looking for <a id="X.Y.Z">.


Step 2: Determine the commit range

The range is "commits not yet listed in the changelog for this version". How to find it depends on whether the section already exists:

If the section already exists (progressive update):

  • Extract every commit SHA already present in that version's <li> entries across every category in the section, not just the first one. Category <h3> blocks are each sorted newest-first independently, so the top entry of whichever section happens to appear first in the file (usually "Security fixes") is not necessarily the most-recently-added commit overall — a later section (e.g. "Changed") can easily have a newer top entry. Picking the wrong "most recent" boundary silently re-processes commits that are already listed elsewhere in the section.
  • Run git log --pretty=format:'%H' HEAD and skip every SHA that appears (by its 8-char or 12-char prefix) in the existing section.
  • The range to process is everything since the newest already-listed commit. Concretely: find the most recent commit in the section, then use git log --pretty=... <that-SHA>..HEAD as the range.
  • If the section exists but has no <li> entries yet, fall back to the previous-release tag as the start point (see below).
  • Don't trust a single computed "boundary commit" blindly. Before writing anything, take the final candidate list of commits you intend to add and grep each one's SHA directly against the entire existing version section (all categories, not just the one you think is the boundary). Any hit means that commit is already listed and must be dropped from the new batch — this simple per-commit membership check is cheap and catches boundary-detection mistakes before they turn into duplicate <li> entries.
  • If the user hands you a pre-curated commit list directly (e.g. a file with already-formatted <li> lines they generated themselves), treat it as the authoritative "what to add" source, but still: (a) run the per-commit membership check above — a curated list can still overlap with what's already in the file; (b) de-duplicate exact-repeated messages inside the list itself (different SHAs with identical text happen after rebases or duplicate merges — keep only the first occurrence); (c) still apply the full Step 3 / Step 5 cleanup below, since a pre-generated list is normally raw gitlog.php output and needs the same trimming.

If the section does not yet exist:

  • Identify the most recent existing release tag on this branch via git tag --merged HEAD --sort=-version:refname | grep -E '^v[0-9]'.
  • The most recent tag is the start of the range: git log v3.0.X..HEAD.
  • If the tag name is ambiguous (e.g. v2.0.2 vs 2.0.2), ask the user to confirm before running the log command.
⚠️ RTK / token-proxy hooks can silently corrupt git log output

If this environment has an rtk (or similar token-savings) hook rewriting git commands transparently, do not trust its output for changelog work. It has been observed to both truncate long lines (e.g. cutting a subject at ~80 chars and appending ..., even when output is redirected to a file, not just displayed) and to silently drop commits from the result set — in one session, git log <sha>..HEAD | wc -l returned 50 through the hook and 168 through an unfiltered call for the exact same range. A truncated message is merely annoying (it gets caught during cleanup); a silently dropped commit means a real change never makes it into the changelog at all, with nothing to signal the omission.

Mitigation: for every git log call used to build the commit range or inspect messages, use rtk proxy git log ... (or whatever the local token-proxy's raw/debug passthrough is — check the tool's own docs, e.g. a CLAUDE.md/RTK.md reference) instead of the plain git log ... the hook would intercept. If you're unsure whether such a hook is active, run the same git log count both ways once at the start of the session and compare — mismatched counts confirm the hook is interfering.


Step 3: Apply the gitlog.php filtering rules

Read tests/scripts/packaging/gitlog.php to confirm the rules are unchanged before processing. Then apply them to each commit's subject line in the script's own order: 3b, the 3a text skips, 3c, the 3a Minor skip, 3d, 3e.

Prefer running the real script over hand-simulating it. gitlog.php requires a php-git/src/Git.php dependency in the same directory (tests/scripts/packaging/php-git/) — it may be present in the working tree even if untracked by git (check with ls). When it's available, run it directly instead of manually replaying steps 3a-3e in your head across dozens of commits — that manual replay is error-prone (mis-tracking which known mistake applies, mis-computing issue-reference stripping, etc.):

cd tests/scripts/packaging && php gitlog.php <boundary-commit-sha>

This stops at <boundary-commit-sha> (printing it too — drop that last line since it's already in the changelog) and echoes real <li> HTML using the exact same logic this skill documents, eliminating transcription errors.

Caveat: the script's output can still include full commit-body text appended after the subject (e.g. See advisory GHSA-xxxx-xxxx-xxxx, trailing Author: ... <email> trailers, or multi-sentence rationale paragraphs). This is not part of the clean subject line — strip it during Step 5 cleanup the same as a typo.

3a. Hard-skip entire commits

Skip commits whose (3b-normalised) subject contains Update language terms anywhere, or starts with any of:

  • Update language vars
  • Update lang vars
  • Merge (also lowercase merge)
  • Scrutinizer Auto-Fixes
  • Update changelog
  • Fix PHP Warning

After 3c, also skip any subject starting with Minor (case-insensitive, first 5 characters). This includes [Minor] subjects that 3c renamed to Minor:.

Note: gitlog.php defines a $skipTechnicalPrefixes array (QA, Internal, Display, Fix, Refactor, Migration, UI, …) but never uses it — it is dead code. Do NOT filter on those prefixes; the existing changelog includes Internal:, Display:, and Fix: entries.

3b. Normalise separator punctuation (applied in this exact order):
  1. ^(\w+) - (.*) → $1: $2
  2. ^(\w+ \w+) - (.*) → $1: $2
  3. ^(\w+) : (.*) → $1: $2
3c. Rename known prefix mistakes via sanitizeCategory():

Apply the full substitution table below (case-insensitive prefix match, replace prefix only, keep the rest of the message):

Wrong prefixCorrect prefix
Quiz / ExercisesExercise
LP / Learning Paths / LearningPath / LearnpathsLearnpath
DocumentsDocument
AnnouncementsAnnouncement
RemedialCoursePlugin: RemedialCourse
Groups / [usergroup]Group
Survey report / Survey list exportSurvey
Learnpath reportLearnpath
TopLink / TopLinksPlugin: TopLinks
SessionsSession
CasAuthentication: CAS
Webservices / WebService / Web servicesWebservice
BBBPlugin: BigBlueButton
My Progress / My Progres / Reports / ReportingTracking
CoursesDisplay
[LP]Learnpath
Student follow pageTracking: Student follow-up
RESTWebservice: REST
Import CSV / ImportCSV / Import_csv.phpAdmin: CSV import
[Minor]Minor:
[admin]Admin
MySpaceTracking
Career diagram / CareersCareer
UsersUser
Style:Display:
Course AnnouncementAnnouncement
Testing / CIQA
BlogsBlog
Gradebook evalGradebook
Survey testQA: Survey
EditorWYSIWYG
GlobalInternal
Extra fieldExtra Fields
SettingsAdmin
ChangelogDocumentation
Session importAdmin: Session import
XAPIxAPI
CourseCopy / Course CopyMaintenance
Course BackupMaintenance
SSOAuthentication: Single Sign On
SkillsSkill
MessagesMessage
Security fixes -Security:
Work / Works / Pending worksAssignment
Improve codeInternal: Improve code
Thematic / Thematic advanceCourse Progress
AgendaCalendar
Course importMaintenance
Student publication / Student publicationsAssignment

Known false positive: REST / CI and other short prefixes. sanitizeCategory() matches these terms as a plain string prefix (strncasecmp), with no word-boundary check. REST (4 chars) matches the first 4 letters of any word starting "Rest…", so a commit titled Restore the language switch... gets mangled into Webservice: RESTore the language switch.... This has already happened repeatedly and gone uncorrected in the existing changelog (search for RESTore — multiple pre-existing entries). When you hit this on a new commit you're adding, fix it for that entry (strip the bogus Webservice: REST prefix, restore the plain subject) and note the correction in the Step 8 report — but don't retroactively edit old, already-published entries with the same bug (surgical changes only; flag it to the user instead as a possible upstream fix to sanitizeCategory(), e.g. requiring a word boundary or capitalization check after the matched term). The same risk applies to any other short 2-4 letter term in the table above (e.g. CI, Cas, LP) — double check any prefix match shorter than ~5 characters against what it actually matched before trusting it.

Show full SKILL.md (774 more words)Show less
3d. Strip issue references from the message text:

If the subject matches ((BT)?#\d{2,5}), remove the first match and anything after these patterns: see ISSUE, - ref, -refs, - refs, ISSUE.

3e. Finalise:

Apply ucfirst() (capitalise the first character of the message).


Step 4: Classify commits into categories

Use the normalised message prefix (the part before the first :) to assign each commit to a category. Apply in priority order — stop at the first match:

CategoryMessage prefix matches (case-insensitive)
Security fixesSecurity
FixedFix, Bug, Install, Language, Hotfix
AddedAdd, New, Enable, Feature, Implement, Create, Include, Introduce
RemovedRemove, Delete, Drop, Deprecate
ChangedEverything else (Internal, Display, Refactor, Plugin, Auth, Learnpath, Exercise, …)
4a. "Add" verb fallback (Changed → Added only)

A commit whose own prefix doesn't match Security fixes / Fixed / Added / Removed (so it would otherwise land in the Changed catch-all) should be reclassified into Added if the first word after the prefix is add or Add. To find that word: strip the first Category: prefix, then keep stripping any further Subcategory: prefixes (e.g. Plugin: BuyCourses: Add country info in sales detail — strip Plugin:, then BuyCourses:, leaving Add country info...). If the resulting first word is add/Add, use Added instead of Changed.

This fallback only ever moves a commit out of Changed — it never overrides Security fixes, Fixed, or Removed, even when their message also starts with "Add" right after the colon:

  • Security: Add native FIM feature → stays Security fixes
  • Language: Add missing translation for Back to account → stays Fixed (Language already matches the Fixed prefix list)
  • Learnpath: Add support for post-unload event Chrome... → Changed → Added
  • User: Add invitation to course/session... → Changed → Added
  • Plugin: CStudio: Add AI-assisted content generation → Changed → Added (nested prefix stripped: Plugin: then CStudio:)

Omit a category section entirely if it has zero entries.


Step 5: Build each <li> line

Format (newest-first, matching existing changelog style):

html
<li>[YYYY-MM-DD] (<a href="https://github.com/chamilo/chamilo-lms/commit/SHA12">SHA8</a>) Message</li>

When a BT# or GH# issue link exists, add it between the commit link and the closing ):

html
<li>[YYYY-MM-DD] (<a href="https://github.com/chamilo/chamilo-lms/commit/SHA12">SHA8</a> - <a href="https://task.beeznest.com/issues/NUM">BT#NUM</a>) Message</li>

Where SHA12 = first 12 chars of the full SHA, SHA8 = first 8 chars.

Correct any obvious typos in commit messages when formatting for publication (the HTML is user-facing; the git history is not changed). Note corrections in the final report.

Additional cleanup learned in practice:

  • If the raw message ends with body-only content that leaked into the subject (advisory IDs like See advisory GHSA-xxxx-xxxx-xxxx, Author: Name <email> trailers, or multi-sentence rationale paragraphs), strip all of it — keep only the clean subject clause. This is common when running the real gitlog.php script (see Step 3 note) against squash-merged commits whose body carries PR metadata.
  • If an issue number appears in the message text in parentheses (e.g. ...reorder course tools (#8868)) and a separate BT#/GH# link is also being added per this step, drop the redundant (#NNNN) from the visible text — showing the same issue number twice (once inline, once as a link) is noise. gitlog.php's own ref-stripping regexes don't catch this case (they only strip text following specific separator patterns like - refs, not a bare parenthetical), so this needs a manual pass.

Step 6: Ask for the release codename

Ask: "What codename should I use for version X.Y.Z? (Leave blank to insert a placeholder)"

  • If provided, use it: Chamilo X.Y.Z - Codename, YYYY-MM-DD
  • If blank, use: Chamilo X.Y.Z - [TBD], YYYY-MM-DD
  • Use today's date as the release date unless the user specifies another.
  • Historical context: codenames have been small cities/towns/villages in the Somerset/Cheddar region of England (Cadbury, Blackford, Little Weston, Axbridge).

Step 7: Write or update the changelog

If the section does not yet exist: insert it above the previous release's <a id="..."> anchor. Also add an entry to the <div class="toc"> <ul> at the top, above the previous release's TOC line.

If the section already exists (progressive update): append the new <li> entries into the correct category <ul>. If a commit's category <h3> block does not exist yet in that section, create it in the correct order: Security fixes → Added → Changed → Fixed → Removed → Known issues.

The release summary <p> should be written or updated to reflect the nature of the commits in this update. If the section is new, write a brief paragraph. If updating an existing section, revise the summary if the new commits materially change its character.


Step 8: Report

Print a summary table:

Changelog updated for Chamilo X.Y.Z - Codename

Category         | Lines added
-----------------|------------
Security fixes   |  N
Added            |  N
Changed          |  N
Fixed            |  N
Removed          |  N
Total            |  N

Filtered out (not included):
  - M merge commits
  - K minor/noise commits

Typo corrections applied:
  - <SHA8>: "<original>" → "<corrected>"  (or "none")

Guidelines

  • Always read tests/scripts/packaging/gitlog.php at the start to check for rule changes before applying the filter logic above.
  • The changelog is the user-facing record. Prefer clarity over verbatim faithfulness to commit messages.
  • Never invent commits. Only include SHAs that appear in the git log output.
  • Do not modify any section other than the target version.
  • If the user provides a specific date, use that; otherwise use today's date.

© chamilo, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/update-changelog of chamilo/chamilo-lms.

Open the folder on GitHubat commit 9576a86

Compare with similar skills

Chamilo Changelog Updater next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Chamilo Changelog Updater compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Chamilo Changelog Updater this skillchamilo/chamilo-lms1k—~4.2kAutomated safety check: PassGPL-3.0
Release Bumpjamiepine/voicebox57k—~1.1kAutomated safety check: PassMIT
Git Workflow and Versioningaddyosmani/agent-skills103k2 repos~3.5kAutomated safety check: NotesMIT
Go-Redis Release Preparationredis/go-redis22k—~1.1kAutomated safety check: PassBSD-2-Clause
pybind11 Release Preparationpybind/pybind1118k—~1.7kAutomated safety check: PassCustom licence
AionUi Version BumpiOfficeAI/AionUi33k—~2.1kAutomated safety check: PassApache-2.0

Similar skills

  • Release Bump

    jamiepine/voicebox

    Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.

    57k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    103k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • Official

    Prepares a go-redis release locally: picks the next semver, gathers merged PRs, writes the RELEASE-NOTES entry and bumps versions, without publishing.

    22k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Opens the pybind11 release-preparation pull request: picking the release base, bumping the version in common.h and integrating the changelog, following docs/release.rst.

    18k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • AionUi Version Bump

    iOfficeAI/AionUi

    Automates an AionUi release: checks the latest AionCore release and its artifacts, updates package.json, writes the changelog, opens a PR and tags the release.

    33k GitHub stars~2.1k tokensUpdated 29 days ago
    DevelopmentAuto-check passed
  • Hunk Release Workflow

    modem-dev/hunk

    Maintainer workflow for preparing, publishing, verifying and curating Hunk releases, with confirmation gates before tags, publishes and public edits.

    9.5k GitHub stars~3.8k tokensUpdated today
    DevelopmentAuto-check passed

More from chamilo/chamilo-lms

  • Chamilo Theme From Site

    chamilo/chamilo-lms

    Creates a Chamilo color theme with a logo from a website's branding or from a logo file's dominant colors, entirely through the Chamilo REST API.

    1k GitHub stars~5.1k tokensUpdated today
    Auto-check passed
  • Vue Route Breadcrumbs

    chamilo/chamilo-lms

    Gives a route in Chamilo's Vue app its breadcrumb entirely from router meta fields, without editing the Breadcrumb component or naming pages.

    1k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Chamilo Vue Base Components

    chamilo/chamilo-lms

    Swaps native form elements in Chamilo Vue files for Base components and checks that every Base, SectionHeader and Fieldset tag has its import.

    1k GitHub stars~7.6k tokensUpdated today
    Auto-check: notes
  • Chamilo Feature Test Author

    chamilo/chamilo-lms

    Turns a plain-language Chamilo feature description into a Playwright and Gherkin test suite confirmed against the live app, not just the source code.

    1k GitHub stars~3.6k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Chamilo Changelog Updater

What does Chamilo Changelog Updater do?

Adds commits for a new Chamilo release to the changelog page, classifying them into categories and skipping those already listed for that version. This skill updates the changelog page of the Chamilo learning management system with commits for a new release. It applies the filtering and formatting rules from the repository's packaging git-log script, classifies each commit into changelog categories and reports a line-count summary per category.

When should I use Chamilo Changelog Updater?

Chamilo Changelog Updater fits situations like: preparing a release entry in the Chamilo changelog; adding new commits to an existing version section; checking that commits are not already listed in the changelog; classifying commits into changelog categories.

How do I install Chamilo Changelog Updater in Claude Code?

Run `npx skills add chamilo/chamilo-lms --skill update-changelog -a claude-code`. Or copy the skill folder (.claude/skills/update-changelog in chamilo/chamilo-lms) into .claude/skills/update-changelog in your project. Claude Code loads it when a task matches its description.

How do I install Chamilo Changelog Updater in Codex?

Run `npx skills add chamilo/chamilo-lms --skill update-changelog -a codex`. Or copy the skill folder (.claude/skills/update-changelog in chamilo/chamilo-lms) into .agents/skills/update-changelog in your project. Codex loads it when a task matches its description.

Can I use Chamilo Changelog Updater in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add chamilo/chamilo-lms --skill update-changelog -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-changelog, .gemini/skills/update-changelog, .github/skills/update-changelog and .opencode/skills/update-changelog in your project.

What does Chamilo Changelog Updater need to run?

Going by SKILL.md and its folder, Chamilo Changelog Updater needs the command-line tools its instructions call (git). Our summary lists: A checkout of the Chamilo LMS repository with its git history.

Does Chamilo Changelog Updater access the network?

SKILL.md names 1 domain. In commands or code: task.beeznest.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Chamilo Changelog Updater safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Chamilo Changelog Updater use?

Chamilo Changelog Updater is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Chamilo Changelog Updater use?

About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Chamilo Changelog Updater?

Skills that share tags, products or a category with Chamilo Changelog Updater: Release Bump (jamiepine/voicebox, 57k stars), Git Workflow and Versioning (addyosmani/agent-skills, 103k stars), Go-Redis Release Preparation (redis/go-redis, 22k stars) and pybind11 Release Preparation (pybind/pybind11, 18k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Chamilo Changelog Updater?

chamilo (a GitHub organization) maintains it in chamilo/chamilo-lms, which has 1,008 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.

Source: chamilo/chamilo-lms on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.