jpskill.com
💼 ビジネス コミュニティ

jira-projects

Jiraのプロジェクト設定や課題タイプ、コンポーネント、バージョンなどを管理し、プロジェクト情報を効率的に把握するSkill。

📜 元の英語説明(参考)

Manage Jira projects. Use when listing projects, getting project configuration, retrieving issue types, or managing components and versions.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Jiraのプロジェクト設定や課題タイプ、コンポーネント、バージョンなどを管理し、プロジェクト情報を効率的に把握するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Jira Projects スキル

目的

Jiraプロジェクトの管理を行います。具体的には、プロジェクトの一覧表示、詳細の取得、課題タイプ、コンポーネント、バージョンの取得が可能です。

使用場面

  • 利用可能なプロジェクトを一覧表示する場合
  • プロジェクト設定を取得する場合
  • プロジェクトの課題タイプを取得する場合
  • プロジェクトのコンポーネントとバージョンを管理する場合

前提条件

  • 認証済みのJiraClient(jira-authスキルを参照してください)
  • プロジェクトの閲覧権限

実装パターン

ステップ1: 全てのプロジェクトを一覧表示する

interface JiraProject {
  id: string;
  key: string;
  name: string;
  projectTypeKey: string;
  simplified: boolean;
  style: string;
  avatarUrls: Record<string, string>;
  description?: string;
  lead?: {
    accountId: string;
    displayName: string;
  };
}

interface ProjectsResponse {
  values: JiraProject[];
  startAt: number;
  maxResults: number;
  total: number;
  isLast: boolean;
}

async function listProjects(
  client: JiraClient,
  options: {
    status?: 'LIVE' | 'ARCHIVED' | 'DELETED';
    expand?: string[];
    maxResults?: number;
    startAt?: number;
  } = {}
): Promise<JiraProject[]> {
  const params = new URLSearchParams();
  if (options.status) params.set('status', options.status);
  if (options.expand) params.set('expand', options.expand.join(','));
  if (options.maxResults) params.set('maxResults', String(options.maxResults));
  if (options.startAt) params.set('startAt', String(options.startAt));

  const response = await client.request<ProjectsResponse>(
    `/projects?${params.toString()}`
  );
  return response.values;
}

ステップ2: プロジェクトの詳細を取得する

async function getProject(
  client: JiraClient,
  projectKeyOrId: string,
  expand?: string[]
): Promise<JiraProject> {
  const params = expand ? `?expand=${expand.join(',')}` : '';
  return client.request<JiraProject>(`/projects/${projectKeyOrId}${params}`);
}

ステップ3: プロジェクトの課題タイプを取得する

interface IssueType {
  id: string;
  name: string;
  description: string;
  iconUrl: string;
  subtask: boolean;
  hierarchyLevel: number;
}

async function getProjectIssueTypes(
  client: JiraClient,
  projectKeyOrId: string
): Promise<IssueType[]> {
  const response = await client.request<{ values: IssueType[] }>(
    `/projects/${projectKeyOrId}/issuetypes`
  );
  return response.values;
}

ステップ4: プロジェクトのコンポーネントを取得する

interface Component {
  id: string;
  name: string;
  description?: string;
  lead?: {
    accountId: string;
    displayName: string;
  };
  project: string;
  projectId: number;
}

async function getProjectComponents(
  client: JiraClient,
  projectKeyOrId: string
): Promise<Component[]> {
  const response = await client.request<{ values: Component[] }>(
    `/projects/${projectKeyOrId}/components`
  );
  return response.values;
}

ステップ5: プロジェクトのバージョンを取得する

interface Version {
  id: string;
  name: string;
  description?: string;
  archived: boolean;
  released: boolean;
  releaseDate?: string;
  startDate?: string;
  overdue: boolean;
}

async function getProjectVersions(
  client: JiraClient,
  projectKeyOrId: string,
  options: {
    status?: 'UNRELEASED' | 'RELEASED' | 'ARCHIVED';
    expand?: string[];
  } = {}
): Promise<Version[]> {
  const params = new URLSearchParams();
  if (options.status) params.set('status', options.status);
  if (options.expand) params.set('expand', options.expand.join(','));

  const response = await client.request<{ values: Version[] }>(
    `/projects/${projectKeyOrId}/versions?${params.toString()}`
  );
  return response.values;
}

curl の例

プロジェクトを一覧表示する

curl -X GET "https://mycompany.atlassian.net/rest/api/3/projects?expand=description,issueTypes&status=LIVE" \
  -H "Authorization: Basic $(echo -n 'email:token' | base64)" \
  -H "Accept: application/json"

プロジェクトの詳細を取得する

curl -X GET "https://mycompany.atlassian.net/rest/api/3/projects/PROJECT?expand=issueTypes,permissions" \
  -H "Authorization: Basic $(echo -n 'email:token' | base64)" \
  -H "Accept: application/json"

課題タイプを取得する

curl -X GET "https://mycompany.atlassian.net/rest/api/3/projects/PROJECT/issuetypes" \
  -H "Authorization: Basic $(echo -n 'email:token' | base64)" \
  -H "Accept: application/json"

APIエンドポイントの概要

操作 メソッド パス
プロジェクトを一覧表示する GET /projects
プロジェクトを取得する GET /projects/{projectIdOrKey}
課題タイプを取得する GET /projects/{projectIdOrKey}/issuetypes
コンポーネントを取得する GET /projects/{projectIdOrKey}/components
バージョンを取得する GET /projects/{projectIdOrKey}/versions

展開オプション

  • description - プロジェクトの説明
  • lead - プロジェクトリードのユーザー詳細
  • issueTypes - 利用可能な課題タイプ
  • url - プロジェクトのURL
  • permissions - 現在のユーザーの権限
  • projectKeys - 全てのプロジェクトキー

よくある間違い

  • キー/IDの代わりにプロジェクト名を使用する
  • 大規模なプロジェクトリストのページネーションを忘れる
  • アーカイブされたプロジェクトの処理をしない

参照

バージョン履歴

  • 2025-12-10: 作成
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Jira Projects Skill

Purpose

Manage Jira projects - list, get details, retrieve issue types, components, and versions.

When to Use

  • Listing available projects
  • Getting project configuration
  • Retrieving issue types for a project
  • Managing project components and versions

Prerequisites

  • Authenticated JiraClient (see jira-auth skill)
  • Project browse permissions

Implementation Pattern

Step 1: List All Projects

interface JiraProject {
  id: string;
  key: string;
  name: string;
  projectTypeKey: string;
  simplified: boolean;
  style: string;
  avatarUrls: Record<string, string>;
  description?: string;
  lead?: {
    accountId: string;
    displayName: string;
  };
}

interface ProjectsResponse {
  values: JiraProject[];
  startAt: number;
  maxResults: number;
  total: number;
  isLast: boolean;
}

async function listProjects(
  client: JiraClient,
  options: {
    status?: 'LIVE' | 'ARCHIVED' | 'DELETED';
    expand?: string[];
    maxResults?: number;
    startAt?: number;
  } = {}
): Promise<JiraProject[]> {
  const params = new URLSearchParams();
  if (options.status) params.set('status', options.status);
  if (options.expand) params.set('expand', options.expand.join(','));
  if (options.maxResults) params.set('maxResults', String(options.maxResults));
  if (options.startAt) params.set('startAt', String(options.startAt));

  const response = await client.request<ProjectsResponse>(
    `/projects?${params.toString()}`
  );
  return response.values;
}

Step 2: Get Project Details

async function getProject(
  client: JiraClient,
  projectKeyOrId: string,
  expand?: string[]
): Promise<JiraProject> {
  const params = expand ? `?expand=${expand.join(',')}` : '';
  return client.request<JiraProject>(`/projects/${projectKeyOrId}${params}`);
}

Step 3: Get Project Issue Types

interface IssueType {
  id: string;
  name: string;
  description: string;
  iconUrl: string;
  subtask: boolean;
  hierarchyLevel: number;
}

async function getProjectIssueTypes(
  client: JiraClient,
  projectKeyOrId: string
): Promise<IssueType[]> {
  const response = await client.request<{ values: IssueType[] }>(
    `/projects/${projectKeyOrId}/issuetypes`
  );
  return response.values;
}

Step 4: Get Project Components

interface Component {
  id: string;
  name: string;
  description?: string;
  lead?: {
    accountId: string;
    displayName: string;
  };
  project: string;
  projectId: number;
}

async function getProjectComponents(
  client: JiraClient,
  projectKeyOrId: string
): Promise<Component[]> {
  const response = await client.request<{ values: Component[] }>(
    `/projects/${projectKeyOrId}/components`
  );
  return response.values;
}

Step 5: Get Project Versions

interface Version {
  id: string;
  name: string;
  description?: string;
  archived: boolean;
  released: boolean;
  releaseDate?: string;
  startDate?: string;
  overdue: boolean;
}

async function getProjectVersions(
  client: JiraClient,
  projectKeyOrId: string,
  options: {
    status?: 'UNRELEASED' | 'RELEASED' | 'ARCHIVED';
    expand?: string[];
  } = {}
): Promise<Version[]> {
  const params = new URLSearchParams();
  if (options.status) params.set('status', options.status);
  if (options.expand) params.set('expand', options.expand.join(','));

  const response = await client.request<{ values: Version[] }>(
    `/projects/${projectKeyOrId}/versions?${params.toString()}`
  );
  return response.values;
}

curl Examples

List Projects

curl -X GET "https://mycompany.atlassian.net/rest/api/3/projects?expand=description,issueTypes&status=LIVE" \
  -H "Authorization: Basic $(echo -n 'email:token' | base64)" \
  -H "Accept: application/json"

Get Project Details

curl -X GET "https://mycompany.atlassian.net/rest/api/3/projects/PROJECT?expand=issueTypes,permissions" \
  -H "Authorization: Basic $(echo -n 'email:token' | base64)" \
  -H "Accept: application/json"

Get Issue Types

curl -X GET "https://mycompany.atlassian.net/rest/api/3/projects/PROJECT/issuetypes" \
  -H "Authorization: Basic $(echo -n 'email:token' | base64)" \
  -H "Accept: application/json"

API Endpoints Summary

Operation Method Path
List projects GET /projects
Get project GET /projects/{projectIdOrKey}
Get issue types GET /projects/{projectIdOrKey}/issuetypes
Get components GET /projects/{projectIdOrKey}/components
Get versions GET /projects/{projectIdOrKey}/versions

Expand Options

  • description - Project description
  • lead - Project lead user details
  • issueTypes - Available issue types
  • url - Project URL
  • permissions - Current user permissions
  • projectKeys - All project keys

Common Mistakes

  • Using project name instead of key/ID
  • Forgetting pagination for large project lists
  • Not handling archived projects

References

Version History

  • 2025-12-10: Created