{
  "schemaVersion": "1.0",
  "item": {
    "slug": "youtrack-digisal",
    "name": "YouTrack Project Management",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/digiSal/youtrack-digisal",
    "canonicalUrl": "https://clawhub.ai/digiSal/youtrack-digisal",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/youtrack-digisal",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=youtrack-digisal",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "REFERENCES.md",
      "SKILL.md",
      "scripts/invoice_generator.py",
      "scripts/youtrack_api.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/youtrack-digisal"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/youtrack-digisal",
    "agentPageUrl": "https://openagent3.xyz/skills/youtrack-digisal/agent",
    "manifestUrl": "https://openagent3.xyz/skills/youtrack-digisal/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/youtrack-digisal/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "YouTrack",
        "body": "YouTrack integration for project management, time tracking, and knowledge base."
      },
      {
        "title": "Authentication",
        "body": "To generate a permanent token:\n\nFrom the main navigation menu, select Administration > Access Management > Users\nFind your user and click to open settings\nGenerate a new permanent API token\nSet the token as an environment variable:\n\nexport YOUTRACK_TOKEN=your-permanent-token-here\n\nImportant: Configure your hourly rate (default $100/hour) by passing --rate to invoice_generator.py or updating hourly_rate parameter in your code.\n\nThen use any YouTrack script:\n\n# List all projects\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-projects\n\n# List issues in a project\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-issues \"project: MyProject\"\n\n# Generate invoice for a project\npython3 scripts/invoice_generator.py --url https://your-instance.youtrack.cloud --project MyProject --month \"January 2026\" --from-date \"2026-01-01\""
      },
      {
        "title": "scripts/youtrack_api.py",
        "body": "Core API client for all YouTrack operations.\n\nIn your Python code:\n\nfrom youtrack_api import YouTrackAPI\n\napi = YouTrackAPI('https://your-instance.youtrack.cloud', token='your-token')\n\n# Projects\nprojects = api.get_projects()\nproject = api.get_project('project-id')\n\n# Issues\nissues = api.get_issues(query='project: MyProject')\nissue = api.get_issue('issue-id')\n\n# Create issue\napi.create_issue('project-id', 'Summary', 'Description')\n\n# Work items (time tracking)\nwork_items = api.get_work_items('issue-id')\nissue_with_time = api.get_issue_with_work_items('issue-id')\n\n# Knowledge base\narticles = api.get_articles()\narticle = api.get_article('article-id')\napi.create_article('project-id', 'Title', 'Content')\n\nCLI usage:\n\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud \\\n    --token YOUR_TOKEN \\\n    --list-projects\n\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud \\\n    --get-issue ABC-123\n\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud \\\n    --get-articles"
      },
      {
        "title": "scripts/invoice_generator.py",
        "body": "Generate client invoices from time tracking data.\n\nIn your Python code:\n\nfrom youtrack_api import YouTrackAPI\nfrom invoice_generator import InvoiceGenerator\n\napi = YouTrackAPI('https://your-instance.youtrack.cloud', token='your-token')\ngenerator = InvoiceGenerator(api, hourly_rate=100.0)\n\n# Get time data for a project\nproject_data = generator.get_project_time_data('project-id', from_date='2026-01-01')\n\n# Generate invoice\ninvoice_text = generator.generate_invoice_text(project_data, month='January 2026')\nprint(invoice_text)\n\nCLI usage:\n\npython3 scripts/invoice_generator.py \\\n    --url https://your-instance.youtrack.cloud \\\n    --project MyProject \\\n    --from-date 2026-01-01 \\\n    --month \"January 2026\" \\\n    --rate 100 \\\n    --format text\n\nSave the text output and print to PDF for clients."
      },
      {
        "title": "1. List All Projects",
        "body": "python3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-projects"
      },
      {
        "title": "2. Find Issues in a Project",
        "body": "# All issues in a project\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-issues \"project: MyProject\"\n\n# Issues updated since a date\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-issues \"project: MyProject updated >= 2026-01-01\"\n\n# Issues assigned to you\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-issues \"assignee: me\""
      },
      {
        "title": "3. Create a New Issue",
        "body": "from youtrack_api import YouTrackAPI\n\napi = YouTrackAPI('https://your-instance.youtrack.cloud')\napi.create_issue(\n    project_id='MyProject',\n    summary='Task title',\n    description='Task description'\n)"
      },
      {
        "title": "4. Generate Monthly Invoice",
        "body": "# Generate invoice for January 2026\npython3 scripts/invoice_generator.py \\\n    --url https://your-instance.youtrack.cloud \\\n    --project ClientProject \\\n    --from-date 2026-01-01 \\\n    --month \"January 2026\" \\\n    --rate 100 \\\n    --format text > invoice.txt\n\nSave the text output and print to PDF for clients."
      },
      {
        "title": "5. Read Knowledge Base",
        "body": "from youtrack_api import YouTrackAPI\n\napi = YouTrackAPI('https://your-instance.youtrack.cloud')\n\n# All articles\narticles = api.get_articles()\n\n# Articles for specific project\narticles = api.get_articles(project_id='MyProject')\n\n# Get specific article\narticle = api.get_article('article-id')"
      },
      {
        "title": "Billing Logic",
        "body": "Invoice generator uses this calculation:\n\nSum all time tracked per issue (in minutes)\nConvert to 30-minute increments (round up)\nMinimum charge is 30 minutes (at configured rate/2)\nMultiply by rate (default $100/hour = $50 per half-hour)\n\nExamples:\n\n15 minutes → $50 (30 min minimum)\n35 minutes → $100 (rounded to 60 min)\n60 minutes → $100\n67 minutes → $150 (rounded to 90 min)"
      },
      {
        "title": "Environment Variables",
        "body": "YOUTRACK_TOKEN: Your permanent API token (recommended over passing as argument)\nSet with export YOUTRACK_TOKEN=your-token"
      },
      {
        "title": "API Details",
        "body": "See REFERENCES.md for:\n\nComplete API endpoint documentation\nQuery language examples\nField IDs and structures"
      },
      {
        "title": "Error Handling",
        "body": "Scripts will raise errors for:\n\nMissing or invalid token\nNetwork issues\nAPI errors (404, 403, etc.)\n\nCheck stderr for error details."
      }
    ],
    "body": "YouTrack\n\nYouTrack integration for project management, time tracking, and knowledge base.\n\nQuick Start\nAuthentication\n\nTo generate a permanent token:\n\nFrom the main navigation menu, select Administration > Access Management > Users\nFind your user and click to open settings\nGenerate a new permanent API token\nSet the token as an environment variable:\nexport YOUTRACK_TOKEN=your-permanent-token-here\n\n\nImportant: Configure your hourly rate (default $100/hour) by passing --rate to invoice_generator.py or updating hourly_rate parameter in your code.\n\nThen use any YouTrack script:\n\n# List all projects\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-projects\n\n# List issues in a project\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-issues \"project: MyProject\"\n\n# Generate invoice for a project\npython3 scripts/invoice_generator.py --url https://your-instance.youtrack.cloud --project MyProject --month \"January 2026\" --from-date \"2026-01-01\"\n\nPython Scripts\nscripts/youtrack_api.py\n\nCore API client for all YouTrack operations.\n\nIn your Python code:\n\nfrom youtrack_api import YouTrackAPI\n\napi = YouTrackAPI('https://your-instance.youtrack.cloud', token='your-token')\n\n# Projects\nprojects = api.get_projects()\nproject = api.get_project('project-id')\n\n# Issues\nissues = api.get_issues(query='project: MyProject')\nissue = api.get_issue('issue-id')\n\n# Create issue\napi.create_issue('project-id', 'Summary', 'Description')\n\n# Work items (time tracking)\nwork_items = api.get_work_items('issue-id')\nissue_with_time = api.get_issue_with_work_items('issue-id')\n\n# Knowledge base\narticles = api.get_articles()\narticle = api.get_article('article-id')\napi.create_article('project-id', 'Title', 'Content')\n\n\nCLI usage:\n\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud \\\n    --token YOUR_TOKEN \\\n    --list-projects\n\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud \\\n    --get-issue ABC-123\n\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud \\\n    --get-articles\n\nscripts/invoice_generator.py\n\nGenerate client invoices from time tracking data.\n\nIn your Python code:\n\nfrom youtrack_api import YouTrackAPI\nfrom invoice_generator import InvoiceGenerator\n\napi = YouTrackAPI('https://your-instance.youtrack.cloud', token='your-token')\ngenerator = InvoiceGenerator(api, hourly_rate=100.0)\n\n# Get time data for a project\nproject_data = generator.get_project_time_data('project-id', from_date='2026-01-01')\n\n# Generate invoice\ninvoice_text = generator.generate_invoice_text(project_data, month='January 2026')\nprint(invoice_text)\n\n\nCLI usage:\n\npython3 scripts/invoice_generator.py \\\n    --url https://your-instance.youtrack.cloud \\\n    --project MyProject \\\n    --from-date 2026-01-01 \\\n    --month \"January 2026\" \\\n    --rate 100 \\\n    --format text\n\n\nSave the text output and print to PDF for clients.\n\nCommon Workflows\n1. List All Projects\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-projects\n\n2. Find Issues in a Project\n# All issues in a project\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-issues \"project: MyProject\"\n\n# Issues updated since a date\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-issues \"project: MyProject updated >= 2026-01-01\"\n\n# Issues assigned to you\npython3 scripts/youtrack_api.py --url https://your-instance.youtrack.cloud --list-issues \"assignee: me\"\n\n3. Create a New Issue\nfrom youtrack_api import YouTrackAPI\n\napi = YouTrackAPI('https://your-instance.youtrack.cloud')\napi.create_issue(\n    project_id='MyProject',\n    summary='Task title',\n    description='Task description'\n)\n\n4. Generate Monthly Invoice\n# Generate invoice for January 2026\npython3 scripts/invoice_generator.py \\\n    --url https://your-instance.youtrack.cloud \\\n    --project ClientProject \\\n    --from-date 2026-01-01 \\\n    --month \"January 2026\" \\\n    --rate 100 \\\n    --format text > invoice.txt\n\n\nSave the text output and print to PDF for clients.\n\n5. Read Knowledge Base\nfrom youtrack_api import YouTrackAPI\n\napi = YouTrackAPI('https://your-instance.youtrack.cloud')\n\n# All articles\narticles = api.get_articles()\n\n# Articles for specific project\narticles = api.get_articles(project_id='MyProject')\n\n# Get specific article\narticle = api.get_article('article-id')\n\nBilling Logic\n\nInvoice generator uses this calculation:\n\nSum all time tracked per issue (in minutes)\nConvert to 30-minute increments (round up)\nMinimum charge is 30 minutes (at configured rate/2)\nMultiply by rate (default $100/hour = $50 per half-hour)\n\nExamples:\n\n15 minutes → $50 (30 min minimum)\n35 minutes → $100 (rounded to 60 min)\n60 minutes → $100\n67 minutes → $150 (rounded to 90 min)\nEnvironment Variables\nYOUTRACK_TOKEN: Your permanent API token (recommended over passing as argument)\nSet with export YOUTRACK_TOKEN=your-token\nAPI Details\n\nSee REFERENCES.md for:\n\nComplete API endpoint documentation\nQuery language examples\nField IDs and structures\nError Handling\n\nScripts will raise errors for:\n\nMissing or invalid token\nNetwork issues\nAPI errors (404, 403, etc.)\n\nCheck stderr for error details."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/digiSal/youtrack-digisal",
    "publisherUrl": "https://clawhub.ai/digiSal/youtrack-digisal",
    "owner": "digiSal",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/youtrack-digisal",
    "downloadUrl": "https://openagent3.xyz/downloads/youtrack-digisal",
    "agentUrl": "https://openagent3.xyz/skills/youtrack-digisal/agent",
    "manifestUrl": "https://openagent3.xyz/skills/youtrack-digisal/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/youtrack-digisal/agent.md"
  }
}