[Skill] Review an Azure Linux component definition for hygiene and best practices. Use when reviewing comp.toml files, checking overlay quality, validating file organization, or auditing component definitions. Triggers: review component, check hygiene, audit component, validate comp.toml, component review. NOTE: This skill is a work-in-progress — the checklist below covers basics but the full review workflow is still being refined.
68
82%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
azldev comp list -p <name> -q -O jsonReview the resolved output for correctness, then dig deeper with query (it's slow since it parses the spec in mock):
azldev comp query -p <name> -q -O json<name>/<name>.comp.toml fileupstream-name when they differdescription field explaining why the change is neededspec-set-tag, spec-add-tag) over regex (spec-search-replace) where possible
spec-search-replace is unavoidable, make every effort to always scope it with section and/or package fields to limit where the regex can match. For example, a replacement targeting a %files entry in a sub-package should set section = "%files" and package = "<suffix>" (the short sub-package suffix as it appears in the spec header, e.g. "foo" for %files foo, not "mypkg-foo"). Unscoped regex overlays are fragile and may silently match unintended lines after upstream updates.'...') for regex to avoid escaping issuesupstream-name is set when the component name differs from upstream (e.g., azurelinux-rpm-config with upstream-name = "redhat-rpm-config")build.defines and build.without are used appropriatelybuild.without) match available spec conditionals%check disabled? If build.without includes "check", flag as a Warning — disabling tests is an absolute last resort. Verify that a skip_reason is present and clearly explains why the tests cannot be fixed. If the justification is missing or weak, recommend re-enabling %check and fixing the underlying test failures instead.release.calculation = "manual"? Verify it's actually needed and has a matching spec-set-tag overlay for Release. See Release Configuration.release.calculation = "autorelease"? Verify the upstream spec actually uses conditional %autorelease (e.g., %if %{defined autorelease}). If not conditional, auto should suffice.Produce a structured report grouped by severity:
If the review includes a subset of the file (i.e., git diff), focus on that subset but also consider the overall context to ensure changes fit well with the existing structure and conventions. Offer actionable recommendations for any issues with the changes, but also consider if there are broader improvements that could be made to the component definition as a whole. The goal should be to minimize changes while maximizing maintainability and adherence to best practices. This is a balance - if the proposed change aligns with the existing structure and conventions, it's likely better to keep it as-is even if it's not perfect, rather than suggesting a large refactor that may introduce new issues or require additional testing. However, if the fix would be fairly small and would improve the overall quality and maintainability of the component, it's worth suggesting. Use your judgement to weigh the benefits of the change against the potential risks and effort involved in both making the changes, testing them, and getting final review sign-off from the maintainers (who will likely prefer smaller, incremental improvements over large refactors, especially if the current structure is already reasonably good and the proposed change is more of a "nice to have" than a "must have").
9e308ff
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.