> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runaether.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Enable a default skill on a project

> Leaves the default skill on for the project's workspaces, turning it back on if the project turned it off, answered with the skill and the project's switch of it.

Use this tool when you need to:
- Turn back on a default skill the project turned off
- Make sure a default skill is on before starting tasks in the project

Examples:
- PUT /projects/{projectID}/default-skills/aether-deep-review

Hints:
- projectID is the project's uuid; slug names a default skill from listProjectDefaultSkills, 1 to 64 lowercase letters, digits and dashes (422 outside that pattern). There is no body.
- Enabling a skill that is on changes nothing. Answers the skill as listProjectDefaultSkills lists it: slug, description, enabled true, required_by, and shadowed, whether the caller's own saved skill of its slug replaces it in the caller's workspaces.
- The switch is every member's: every member's workspaces receive the skill, except a member whose own saved skill of its slug shadows it.
- Use disableProjectDefaultSkill instead to turn it off.
- Restricted to an owner or admin of the project's organization; a member is refused with 403 control_forbidden, a viewer or billing member with 403 org_role_insufficient, a project the caller cannot see is 404, and an agent host's grant is refused with 403 agent_host_route_not_allowed.
- Refused with 404 for a slug that names no default skill (the mobile-testing skills among them), 403 org_suspended when the project's organization is suspended, 403 account_deleting while the caller's account is being deleted, and 503 when the membership check is unavailable.



## OpenAPI

````yaml api-reference/openapi.json PUT /projects/{projectID}/default-skills/{slug}
openapi: 3.1.0
info:
  title: Aether API
  version: 0.1.0
servers:
  - url: https://api.runaether.dev
security:
  - bearerAuth: []
paths:
  /projects/{projectID}/default-skills/{slug}:
    put:
      tags:
        - skills
      summary: Enable a default skill on a project
      description: >-
        Leaves the default skill on for the project's workspaces, turning it
        back on if the project turned it off, answered with the skill and the
        project's switch of it.


        Use this tool when you need to:

        - Turn back on a default skill the project turned off

        - Make sure a default skill is on before starting tasks in the project


        Examples:

        - PUT /projects/{projectID}/default-skills/aether-deep-review


        Hints:

        - projectID is the project's uuid; slug names a default skill from
        listProjectDefaultSkills, 1 to 64 lowercase letters, digits and dashes
        (422 outside that pattern). There is no body.

        - Enabling a skill that is on changes nothing. Answers the skill as
        listProjectDefaultSkills lists it: slug, description, enabled true,
        required_by, and shadowed, whether the caller's own saved skill of its
        slug replaces it in the caller's workspaces.

        - The switch is every member's: every member's workspaces receive the
        skill, except a member whose own saved skill of its slug shadows it.

        - Use disableProjectDefaultSkill instead to turn it off.

        - Restricted to an owner or admin of the project's organization; a
        member is refused with 403 control_forbidden, a viewer or billing member
        with 403 org_role_insufficient, a project the caller cannot see is 404,
        and an agent host's grant is refused with 403
        agent_host_route_not_allowed.

        - Refused with 404 for a slug that names no default skill (the
        mobile-testing skills among them), 403 org_suspended when the project's
        organization is suspended, 403 account_deleting while the caller's
        account is being deleted, and 503 when the membership check is
        unavailable.
      operationId: enableProjectDefaultSkill
      parameters:
        - in: path
          name: projectID
          required: true
          schema:
            format: uuid
            type: string
        - in: path
          name: slug
          required: true
          schema:
            pattern: ^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultSkill'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SkillsErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SkillsErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/SkillsErrorResponse'
                  - $ref: '#/components/schemas/OrgAuthorizationErrorResponse'
                  - $ref: '#/components/schemas/ControlForbiddenErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SkillsErrorResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SkillsErrorResponse'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SkillsErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SkillsErrorResponse'
          description: Service Unavailable
components:
  schemas:
    DefaultSkill:
      additionalProperties: false
      properties:
        description:
          minLength: 1
          type: string
        enabled:
          type: boolean
        required_by:
          items:
            type: string
          type: array
        shadowed:
          type: boolean
        slug:
          minLength: 1
          type: string
      required:
        - slug
        - description
        - enabled
        - required_by
        - shadowed
      type: object
    SkillsErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - account_deleting
            - aether_inference_unavailable
            - aether_inference_unserved
            - agent_connector_not_found
            - agent_default_project_archived
            - agent_profile_changed
            - agent_profile_harness_fixed
            - bad_gateway
            - bad_request
            - conflict
            - connection_agent_only
            - connection_harness_mismatch
            - connection_not_held
            - control_forbidden
            - default_skill_required
            - fallback_is_own_connection
            - fallback_required_with_pin
            - fallback_requires_pin
            - forbidden
            - gateway_timeout
            - gone
            - integration_auth_unexpected
            - integration_not_in_directory
            - integration_shape_changed
            - internal_error
            - mcp_connection_github_not_connected
            - mcp_connection_oauth_not_accepted
            - mcp_connection_org_not_offered
            - mcp_connection_secret_invalid
            - mcp_connection_server_changed
            - mcp_connection_static_secret_not_accepted
            - mcp_credential_policy_not_applicable
            - mcp_credential_policy_org_unavailable
            - mcp_credential_policy_required
            - mcp_oauth_app_auth_method_unsupported
            - mcp_oauth_app_invalid
            - mcp_oauth_app_issuer_invalid
            - mcp_oauth_app_required
            - mcp_oauth_not_advertised
            - mcp_oauth_pkce_unsupported
            - mcp_oauth_registration_failed
            - mcp_repo_config_invalid
            - mcp_server_address_refused
            - mcp_server_aether_managed
            - mcp_server_api_key_not_applicable
            - mcp_server_args_invalid
            - mcp_server_auth_discovery_failed
            - mcp_server_auth_unsupported
            - mcp_server_directory_managed
            - mcp_server_directory_moved
            - mcp_server_display_name_invalid
            - mcp_server_env_invalid
            - mcp_server_headers_invalid
            - mcp_server_key_invalid
            - mcp_server_key_reserved
            - mcp_server_key_taken
            - mcp_server_kind_change_refused
            - mcp_server_not_from_directory
            - mcp_server_not_mcp
            - mcp_server_package_invalid
            - mcp_server_plugin_bundled
            - mcp_server_plugin_off
            - mcp_server_response_too_large
            - mcp_server_return_to_invalid
            - mcp_server_runtime_invalid
            - mcp_server_switched_off
            - mcp_server_unreachable
            - mcp_server_url_invalid
            - mcp_server_version_unpinned
            - method_not_allowed
            - not_acceptable
            - not_found
            - not_implemented
            - org_role_insufficient
            - org_suspended
            - payment_required
            - plugin_moved
            - plugin_name_taken
            - plugin_request_invalid
            - plugin_server_key_reserved
            - plugin_server_key_taken
            - plugin_server_probe_failed
            - plugin_server_required
            - plugin_skill_invalid
            - plugin_source_address_refused
            - plugin_source_empty
            - plugin_source_invalid
            - plugin_source_not_found
            - plugin_source_not_public
            - plugin_source_too_large
            - plugin_source_unreachable
            - plugin_source_unsupported
            - plugin_switched_off
            - plugin_undeliverable
            - precondition_failed
            - rate_limited
            - request_canceled
            - request_timeout
            - request_too_large
            - service_unavailable
            - skill_slug_reserved
            - unauthenticated
            - unsupported_media_type
            - validation_failed
          minLength: 1
          type: string
        error:
          minLength: 1
          type: string
        errors:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
      required:
        - error
        - code
      type: object
    OrgAuthorizationErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - org_membership_required
            - org_role_insufficient
            - org_suspended
            - account_deleting
            - agent_host_route_not_allowed
            - credential_kind_not_admitted
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
        - code
      type: object
    ControlForbiddenErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - control_forbidden
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
        - code
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.