{
  "schema": "GIIP skill bootstrap manifest v1",
  "schema_version": "1.0.0",
  "intent": "install_or_update_skill",
  "skill": {
    "name": "giip-issue",
    "version": "1.0.0"
  },
  "bundle": {
    "url": "https://giip.littleworld.net/skills/giip-issue/giip-issue.zip",
    "sha256": "4b1aca5622cc478a8ed10ef3cf22636f02c8c584641e0103869d0d10d1f629ac"
  },
  "files": [
    {
      "path": "SKILL.md",
      "url": "https://giip.littleworld.net/skills/giip-issue/SKILL.md",
      "sha256": "58f7bda147c6a57ff4e95e6fa4ecd60508257b93a98fbe505fb2ccc620db725a"
    },
    {
      "path": "scripts/giip_issue.py",
      "url": "https://giip.littleworld.net/skills/giip-issue/scripts/giip_issue.py",
      "sha256": "cb6730a1e6ce84d8e0446e53908f723f0060122311ac0e55edaef2c7040a3a04"
    },
    {
      "path": "references/api.md",
      "url": "https://giip.littleworld.net/skills/giip-issue/references/api.md",
      "sha256": "557538f91a02a563097a2a176cc8d9a221fed8d705f9c18595780d91582a5a5e"
    },
    {
      "path": "agents/openai.yaml",
      "url": "https://giip.littleworld.net/skills/giip-issue/agents/openai.yaml",
      "sha256": "fd5b0694f405f2ab66a3cd45e7e580e29669e03f5c03597b074d7b20f9a6977b"
    }
  ],
  "api_reference": {
    "ko": "https://giip.littleworld.net/ko/guides/giip-issue-api",
    "ja": "https://giip.littleworld.net/ja/guides/giip-issue-api",
    "en": "https://giip.littleworld.net/en/guides/giip-issue-api"
  },
  "required_capabilities": [
    "create_or_update_skill_or_directive_files_on_the_host",
    "store_and_execute_a_helper_script",
    "outbound_https_requests",
    "custom_http_header_x_api_key",
    "temporary_runtime_secret_storage_only"
  ],
  "post_install_verification": {
    "steps": [
      "Recompute the SHA-256 of each downloaded file in `files[]` and compare against the `sha256` value listed for it.",
      "Recompute the SHA-256 of the downloaded `giip-issue.zip` and compare against `bundle.sha256`.",
      "Run `python giip_issue.py --help` (or the subcommand `--help` forms) to confirm the script parses and runs with no syntax errors on the host's Python interpreter.",
      "Do not attempt a real API call as part of installation verification -- that requires a live CSN and SK from the user, which are collected only after installation is verified (see SKILL.md and the human-facing guide)."
    ],
    "note": "실제 CSN/SK를 이용한 API E2E는 사람이 별도 수행, 테스트 ISN 미배정(2026-08-25 기준). No end-to-end API call has been made as part of producing this bundle; installation verification is limited to checksum and syntax checks."
  },
  "supported_agents": [
    { "name": "chatgpt", "verified": false, "note": "미검증 (pending human test)" },
    { "name": "codex", "verified": false, "note": "미검증 (pending human test)" },
    { "name": "claude", "verified": false, "note": "미검증 (pending human test)" },
    { "name": "gemini", "verified": false, "note": "미검증 (pending human test)" },
    { "name": "generic_mcp_agent", "verified": false, "note": "미검증 (pending human test)" }
  ],
  "unsupported_behavior": "If the host cannot create/store files, cannot execute a local script, or cannot make outbound HTTPS requests with a custom header, it must not claim to have installed or run this skill. It should state plainly which capability is missing and stop, then offer the human-facing guide (api_reference / the /{locale}/guides/chatgpt-giip-issue page) as the fallback: registering the issue manually through the GIIP web UI. Never claim GIIP Issue registration succeeded without a post-write verification GET confirming the actual isn/csn/title/status.",
  "meta": {
    "generated_at": "2026-08-25",
    "source_issue": "giip-1492",
    "note": "이 형식(schema)은 GIIP 자체 규격이며 업계 표준이 아니다. This manifest format is a GIIP-internal convention, not an industry standard."
  }
}
