A team of engineers said it built a skills registry and command-line tool to stop AI coding assistants from drifting into different local setups across the organization. The problem was not the underlying models, which were current, but the skills files that shaped how each agent behaved inside an IDE.
According to the article, some engineers had written their own skills, others copied older versions, and some pulled skills from the internet. Because skills are local config files, the platform team had no clear view into which versions were in use or which rules had been changed.
To fix that, the team created a central skills library. The skills themselves are markdown files that describe how the company works, including security conventions, incident handling, and coding standards.
The first step was to keep all skills in version control. The team said this makes changes easier to track, makes syncing to an IDE simpler, and lets the library be auto-discovered in Port, the internal system they use to connect skills to services and teams.
The team also said it pulls ideas from other sources when building the library, including PR review comments, architecture decision records, incident postmortems, onboarding documentation, and community libraries such as skills.sh. It also looks for what it calls “shadow skills,” meaning skills scattered across different places without central oversight.
Once the library was assembled, the team grouped skills by use case instead of leaving engineers to browse a large pile of files. Examples include engineering standards, frontend, backend, data, and infrastructure. That way, engineers import a group of related skills instead of picking individual files one by one.
The company also split skills into required and optional categories. Required skills are pushed to every engineer and agent automatically, with no opt-out. The article listed security controls, coding conventions, and rule governance as examples. Optional skills are loaded only when they match the work, such as React-specific guidance or incident triage instructions.
Engineers connect to the library with existing permissions, and a CLI command pulls the required groups into their IDE configuration folder, such as .cursor/. The tool then prompts them to choose optional groups like frontend or data and ML, depending on their role.
The team said it also set up automation to keep skills current. In Cursor, an automation watches Port for changes, then pulls updated required skills and refreshes existing ones. Engineers can contribute back from their IDE by starring useful skills or submitting new ones, which then go through platform-team review before being merged and redistributed.
The article described a feedback loop built around a meta-skill that watches for repeated corrections. If an engineer corrects an agent on the same issue twice in one session, the system asks whether it should create a skill for that behavior. If the engineer agrees, it launches the skill-creator with the observed issue already loaded.
The platform team still reviews submissions, but the article said the process reduces the need for manual discovery. Over time, the library becomes more complete as the system captures common mistakes and folds them into the shared skill set.
To measure whether the system works, the team built a dashboard that shows who has set it up, which groups they pulled, and when they last synced. It also tracks skill age, last update time, and ownership, and flags anything that has not changed in 90 days.
The team said it also monitors contribution flow through submitted, in-review, merged, and rejected states. Another signal it watches is recurring review comments on AI-generated pull requests. If the same comment shows up often enough across different engineers, it can become a new skill or update an existing one.
The company said this matters because many teams already have agent sprawl: a growing number of unofficial skills, agents, and MCP servers in circulation. With a registry in place, the platform team can answer a question it could not answer before: what each agent in the organization actually knows right now.