56 results available
Sign in
Skills directory

copilot-spaces

github

·

Last changed
Hardened

This skill has been hardened by Chainguard

Last changed

This version passed the hardening gate. Hardening applied 10 targeted changes and preserved all other text. Classified findings before hardening: 0. Classified findings closed: 0. Classified findings remaining: 0. Unclassified scanner findings remaining: 0. Review findings closed: 6. Review findings remaining: 8.


Open before hardening

None

Open after hardening

None


Expand
File
Group
Subtype
Severity
Status

No findings available

0 findings


SKILL.md

Copilot Spaces

Use Copilot Spaces to bring curated, project-specific context into conversations. A Space is a shared collection of repositories, files, documentation, and instructions that grounds Copilot responses in your team's actual code and knowledge.

Available Tools

MCP Tools (Read-only)

ToolPurpose

mcp__github__list_copilot_spaces

List all spaces accessible to the current user

mcp__github__get_copilot_space

Load a space's full context by owner and name

REST API via gh api (Full CRUD)

The Spaces REST API supports creating, updating, deleting spaces, and managing collaborators. The MCP server only exposes read operations, so use gh api for writes.

User Spaces:

MethodEndpointPurpose

POST

/users/{username}/copilot-spaces

Create a space

GET

/users/{username}/copilot-spaces

List spaces

GET

/users/{username}/copilot-spaces/{number}

Get a space

PUT

/users/{username}/copilot-spaces/{number}

Update a space

DELETE

/users/{username}/copilot-spaces/{number}

Delete a space

Organization Spaces: Same pattern under /orgs/{org}/copilot-spaces/...

Scope requirements: PAT needs read:user for reads, user for writes.

Note: This API is functional but not yet in the public REST API docs. It may require the copilot_spaces_api feature flag.

When to Use Spaces

  • User mentions "Copilot space" or asks to "load a space"
  • User wants answers grounded in specific project docs, code, or standards
  • User asks "what spaces are available?" or "find a space for X"
  • User needs onboarding context, architecture docs, or team-specific guidance
  • User wants to follow a structured workflow defined in a Space (templates, checklists, multi-step processes)

Workflow

1. Discover Spaces

When a user asks what spaces are available or you need to find the right space:

Call mcp__github__list_copilot_spaces

This returns all spaces the user can access, each with a name and owner_login. Present relevant matches to the user.

To filter for a specific user's spaces, match owner_login against the username (e.g., "show me my spaces").

2. Load a Space

When a user names a specific space or you've identified the right one:

Call mcp__github__get_copilot_space with:
  owner: "org-or-user"    (the owner_login from the list)
  name: "Space Name"      (exact space name, case-sensitive)

This returns the space's full content: attached documentation, code context, custom instructions, and any other curated materials. Use this context to inform your responses.

3. Follow the Breadcrumbs

Space content often references external resources: GitHub issues, dashboards, repos, discussions, or other tools.

4. Answer or Execute

Once loaded, use the space content based on what it contains:

If the space contains reference material (docs, code, standards):

  • Answer questions about the project's architecture, patterns, or standards
  • Generate code that follows the team's conventions
  • Debug issues using project-specific knowledge

If the space contains workflow instructions (templates, step-by-step processes):

  • Produce output in the format the workflow defines
  • Show progress after each step so the user can steer

5. Manage Spaces (via gh api)

When a user wants to create, update, or delete a space, use gh api. First, find the space number from the list endpoint.

Update a space's instructions:

gh api users/{username}/copilot-spaces/{number} \
  -X PUT \
  -f general_instructions="New instructions here"

Update name, description, or instructions together:

gh api users/{username}/copilot-spaces/{number} \
  -X PUT \
  -f name="Updated Name" \
  -f description="Updated description" \
  -f general_instructions="Updated instructions"

Create a new space:

gh api users/{username}/copilot-spaces \
  -X POST \
  -f name="My New Space" \
  -f general_instructions="Help me with..." \
  -f visibility="private"

Attach resources (replaces entire resource list):

{
  "resources_attributes": [
    { "resource_type": "free_text", "metadata": { "name": "Notes", "text": "Content here" } },
    { "resource_type": "github_issue", "metadata": { "repository_id": 12345, "number": 42 } },
    { "resource_type": "github_file", "metadata": { "repository_id": 12345, "file_path": "docs/guide.md" } }
  ]
}

Delete a space:

gh api users/{username}/copilot-spaces/{number} -X DELETE

Updatable fields: name, description, general_instructions, icon_type, icon_color, resources_attributes

Examples

Example 1: User Asks for a Space

User: "Load the Accessibility copilot space"

Action:

  1. Call mcp__github__get_copilot_space with owner "github", name "Accessibility"
  2. Use the returned context to answer questions about accessibility standards, MAS grades, compliance processes, etc.

Example 2: User Wants to Find Spaces

User: "What copilot spaces are available for our team?"

Action:

  1. Call mcp__github__list_copilot_spaces
  2. Filter/present spaces relevant to the user's org or interests
  3. Offer to load any space they're interested in

Example 3: Context-Grounded Question

User: "Using the security space, what's our policy on secret scanning?"

Action:

  1. Call mcp__github__get_copilot_space with the appropriate owner and name
  2. Find the relevant policy in the space content
  3. Answer based on the actual internal documentation

Example 4: Space as a Workflow Engine

User: "Write my weekly update using the PM Weekly Updates space"

Action:

  1. Call mcp__github__get_copilot_space to load the space. It contains a template format and step-by-step instructions.
  2. draft each section.
  3. Show the draft after each section so the user can review and fill in gaps.
  4. Produce the final output in the format the space defines.

Example 5: Update Space Instructions Programmatically

User: "Update my PM Weekly Updates space to include a new writing guideline"

Action:

  1. Call mcp__github__list_copilot_spaces and find the space number (e.g., 19).
  2. Call mcp__github__get_copilot_space to read current instructions.
  3. Modify the instructions text as requested.
  4. Push the update:
gh api users/labudis/copilot-spaces/19 -X PUT -f general_instructions="updated instructions..."

Tips

  • Space names are case-sensitive. Use the exact name from list_copilot_spaces.
  • Spaces can be owned by users or organizations. Always provide both owner and name.
  • Space content can be large (20KB+). If returned as a temp file, use grep or view_range to find relevant sections rather than reading everything at once.
  • If a space isn't found, suggest listing available spaces to find the right name.
  • Spaces auto-update as underlying repos change.
  • Write operations (gh api for create/update/delete) require the user PAT scope.
  • Resource updates replace the entire array. To add a resource, include all existing resources plus the new one. To remove one, include { "id": 123, "_destroy": true } in the array.

Install

Install with chainctl
chainctl skill install public/github/copilot-spaces:latest
Get started with chainctl
View source

Harden your own skills

Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.

Provenance

Upstream sourcehttps://github.com/github/awesome-copilot
Upstream commit13970c3275d4474555656a8efca3b91ca9339f9f
OCI reference

skills.cgr.dev/public/github.com/github/skills/copilot-spaces:latest

License

MIT

Files

HARDENING.md

LICENSE

SKILL.md


The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.