Teams and resolution rules
How organization rules, team rules and a developer's own choices combine into one status per skill.
ConceptsOn this page
Three levels
- Organization: the
skillsmap ofskillcrew.yamlapplies to everyone. - Team: each entry under
teamsapplies to its members. A developer can belong to several teams. - Developer: their own choices, stored in
~/.skillcrew/config.yaml(disabled and opted-in skills).
yaml
org: acme
default: available
skills:
security:review: required
docs:pdf: available
teams:
backend:
skills:
data:db-migrations: required
frontend:
skills:
docs:pdf: recommendedHere every developer gets security:review. Backend members also get data:db-migrations. Frontend members get docs:pdf by default and can disable it; everyone else can install it.
Membership
Team membership is manual: each developer joins the teams they belong to.
terminal
$ skillcrew team list
TEAM MEMBER
backend joined
frontend -
$ skillcrew team join frontend
Joined team frontend.
Synced registry 7f396e1a9c2d:
+ pdf (installed)
$ skillcrew team leave frontend
Left team frontend.
Synced registry 7f396e1a9c2d:
- pdf (removed)skillcrew init <registry> --team <team> joins at setup time; the flag is repeatable.
Resolution rules
- The organization rule applies to everyone; team rules apply to team members.
- A team can harden a status (
available→recommended→required), never soften an organizationrequired. - When teams disagree, a requirement wins over another team’s block: if one of your teams requires a skill, you get it.
- An organization
blockedalways wins. - Developers can only disable
recommendedanddeprecatedskills and installavailableones.
ref, sha and install_as are allowed at organization level only.
Conflicts are caught in review
skillcrew validate reports every rule a team cannot express, so the pull request fails before anything reaches a machine:
terminal
$ skillcrew validate
error: teams.backend: data:db-migrations is blocked by the organization; a team cannot allow it
Error: the registry is invalidThe generated CI workflow runs validate on every pull request: see Validate in CI.