Claude-skill-registry jira-spaces
Manage Confluence spaces for project documentation. Create, list, and delete spaces with templates. Use when setting up project documentation structure or managing Confluence content areas.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/jira-spaces" ~/.claude/skills/majiayu000-claude-skill-registry-jira-spaces && rm -rf "$T"
manifest:
skills/data/jira-spaces/SKILL.mdsource content
Jira Spaces Skill
Manage Confluence spaces through the Confluence Cloud REST API. Spaces are the top-level containers for organizing project documentation, wikis, and knowledge bases.
When to Use
- Setting up documentation structure for a new project
- Creating spaces for different teams or initiatives
- Listing available spaces to find documentation
- Archiving or deleting obsolete spaces
Prerequisites
- Confluence Cloud instance (same Atlassian account as Jira)
- API token with Confluence access
- Environment variables configured in
.env
API Reference
Base URL
Confluence Cloud uses the same base URL as Jira Cloud but different API path:
https://your-domain.atlassian.net/wiki/rest/api
Authentication
Same as Jira - Basic Auth with email:token.
Key Endpoints
| Endpoint | Method | Description |
|---|---|---|
| GET | List all spaces |
| POST | Create a new space |
| GET | Get space details |
| DELETE | Delete a space |
| GET | List space content |
Space Types
| Type | Description | Use Case |
|---|---|---|
| Site-wide space | Company wikis, shared docs |
| User's personal space | Individual notes, drafts |
Creating a Space
Request
const response = await fetch(`${CONFLUENCE_URL}/wiki/rest/api/space`, { method: 'POST', headers: { 'Authorization': `Basic ${auth}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ key: 'PROJ', // Unique space key (uppercase) name: 'Project Docs', // Display name type: 'global', // 'global' or 'personal' description: { plain: { value: 'Documentation for the project', representation: 'plain' } } }) });
Response
{ "id": 12345, "key": "PROJ", "name": "Project Docs", "type": "global", "status": "current", "_links": { "webui": "/spaces/PROJ", "self": "https://your-domain.atlassian.net/wiki/rest/api/space/PROJ" } }
Listing Spaces
Request
const response = await fetch(`${CONFLUENCE_URL}/wiki/rest/api/space?limit=25&type=global`, { headers: { 'Authorization': `Basic ${auth}`, 'Accept': 'application/json' } });
Response
{ "results": [ { "id": 12345, "key": "PROJ", "name": "Project Docs", "type": "global", "status": "current" } ], "start": 0, "limit": 25, "size": 1, "_links": {} }
Deleting a Space
WARNING: Deleting a space removes all pages and content permanently!
Request
const response = await fetch(`${CONFLUENCE_URL}/wiki/rest/api/space/PROJ`, { method: 'DELETE', headers: { 'Authorization': `Basic ${auth}` } });
Returns 202 Accepted (deletion is async) or 204 No Content.
Space Keys
Space keys must:
- Be unique across the Confluence instance
- Use only uppercase letters and numbers
- Be 1-255 characters
- Not start with a number
Conventions:
- Project-specificPROJ
- Team-specificTEAM
- DocumentationDOC
- Knowledge baseKB
Common Patterns
Create Project Documentation Space
// Create space with home page await createSpace({ key: 'TUSTLE', name: 'Tustle Project Documentation', description: 'Technical documentation and guides for Tustle MVP' }); // Add standard pages await createPage('TUSTLE', 'Getting Started', 'Overview and setup instructions...'); await createPage('TUSTLE', 'Architecture', 'System architecture documentation...'); await createPage('TUSTLE', 'API Reference', 'API endpoint documentation...');
List Team Spaces
const spaces = await listSpaces({ type: 'global', limit: 50 }); const teamSpaces = spaces.filter(s => s.name.includes('Team'));
Error Handling
| Status | Meaning | Resolution |
|---|---|---|
| 400 | Invalid space key | Check key format (uppercase, no special chars) |
| 401 | Unauthorized | Check API token and email |
| 403 | Forbidden | User lacks space admin permissions |
| 404 | Space not found | Verify space key exists |
| 409 | Conflict | Space key already exists |
Scripts
| Script | Description |
|---|---|
| Create a new Confluence space |
| Delete a space (with confirmation) |
| List all accessible spaces |
Usage Examples
# List all spaces node run.js list-spaces # Create a new space node run.js create-space DOCS "Documentation Space" # Delete a space (interactive confirmation) node run.js delete-space DOCS # Force delete without confirmation node run.js delete-space DOCS --confirm
Related Skills
- Jira project managementjira-projects
- Issue creation for documentation tasksjira-issues