Sweep: assessed all 7 active openspec changes against the codebase. Five had landed implementations (bounded-text, org-label, org-management, code-review-skill, list-milestones-labels) — archived under openspec/changes/archive/2026-05-12-* and their deltas folded into openspec/specs/. Two remain unimplemented: add-releases-support (operation/release/ missing despite proposal PR #129) and forgejo-action-code-review (.forgejo/workflows/claude-code-review.yml missing despite spec deltas). Beads: reopened forgejo-mcp-0ep (releases impl) with notes on actual status; created forgejo-mcp-673 for the action workflow impl.
4.8 KiB
org-teams Specification
Purpose
TBD - created by archiving change add-org-management. Update Purpose after archive.
Requirements
Requirement: List organization teams
The system SHALL provide a list_org_teams MCP tool that lists teams in an organization. The tool SHALL accept:
org(required): organization namepage(required, default 1): page numberlimit(required, default 100): page size
The tool SHALL return a list of team objects including id, name, description, and permission level.
Scenario: List teams in an organization
- WHEN user calls
list_org_teamswithorgset to an existing organization - THEN the system returns a list of team objects for that organization
Scenario: List teams with pagination
- WHEN user calls
list_org_teamswithorg,pageset to 1,limitset to 10 - THEN the system returns at most 10 teams from the first page
Requirement: Create organization team
The system SHALL provide a create_org_team MCP tool that creates a team within an organization. The tool SHALL accept:
org(required): organization namename(required): team namedescription(optional): team descriptionpermission(optional): access level — one ofread,write,admin(default:read)can_create_org_repo(optional, default false): whether team members can create repos in the orgincludes_all_repositories(optional, default false): whether the team has access to all org repos
The tool SHALL return the created team object including its id.
Scenario: Create a team with defaults
- WHEN user calls
create_org_teamwithorgset to an existing organization andnameset to"developers" - THEN the system creates a team with
readpermission and returns the team object with its assignedid
Scenario: Create a team with custom permissions
- WHEN user calls
create_org_teamwithorg,name,permissionset to"write", andincludes_all_repositoriesset totrue - THEN the system creates a team with write access to all repositories and returns the team object
Scenario: Create team in non-existent organization
- WHEN user calls
create_org_teamwithorgset to a name that does not exist - THEN the system returns an error indicating the organization was not found
Requirement: Add team member
The system SHALL provide an add_team_member MCP tool that adds a user to a team. The tool SHALL accept:
team_id(required): numeric team IDuser(required): username to add
The tool SHALL return a success confirmation.
Scenario: Add user to team
- WHEN user calls
add_team_memberwith a validteam_idanduser - THEN the system adds the user to the team and returns a success message
Scenario: Add user to non-existent team
- WHEN user calls
add_team_memberwith ateam_idthat does not exist - THEN the system returns an error indicating the team was not found
Requirement: Remove team member
The system SHALL provide a remove_team_member MCP tool that removes a user from a team. The tool SHALL accept:
team_id(required): numeric team IDuser(required): username to remove
The tool SHALL return a success confirmation.
Scenario: Remove user from team
- WHEN user calls
remove_team_memberwith a validteam_idanduserwho is a current member - THEN the system removes the user from the team and returns a success message
Requirement: Add repository to team
The system SHALL provide an add_team_repo MCP tool that grants a team access to a repository. The tool SHALL accept:
team_id(required): numeric team IDorg(required): organization name (owner of the repo)repo(required): repository name
The tool SHALL return a success confirmation.
Scenario: Add repo to team
- WHEN user calls
add_team_repowith a validteam_id,org, andrepo - THEN the system adds the repository to the team's access list and returns a success message
Scenario: Add non-existent repo to team
- WHEN user calls
add_team_repowith a validteam_idbut arepothat does not exist - THEN the system returns an error indicating the repository was not found
Requirement: Remove repository from team
The system SHALL provide a remove_team_repo MCP tool that revokes a team's access to a repository. The tool SHALL accept:
team_id(required): numeric team IDorg(required): organization name (owner of the repo)repo(required): repository name
The tool SHALL return a success confirmation.
Scenario: Remove repo from team
- WHEN user calls
remove_team_repowith a validteam_id,org, andrepothat the team currently has access to - THEN the system removes the repository from the team's access list and returns a success message