@openhands/extensions 0.0.1-alpha → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/custom-codereview-guide.md +25 -0
- package/.github/pull_request_template.md +38 -0
- package/.github/release.yml +14 -0
- package/.github/workflows/check-extensions.yml +72 -0
- package/.github/workflows/npm-publish.yml +89 -0
- package/.github/workflows/pr.yml +30 -0
- package/.github/workflows/release.yml +24 -0
- package/.github/workflows/tests.yml +25 -0
- package/.github/workflows/vulnerability-scan.yml +87 -0
- package/.release-please-manifest.json +3 -0
- package/AGENTS.md +132 -0
- package/README.md +10 -0
- package/analysis_results.md +162 -0
- package/marketplaces/large-codebase.json +66 -0
- package/marketplaces/openhands-extensions.json +682 -0
- package/package.json +4 -10
- package/plugins/README.md +30 -0
- package/plugins/city-weather/.plugin/plugin.json +13 -0
- package/plugins/city-weather/README.md +145 -0
- package/plugins/city-weather/commands/now.md +56 -0
- package/plugins/cobol-modernization/.plugin/plugin.json +19 -0
- package/plugins/cobol-modernization/README.md +201 -0
- package/plugins/cobol-modernization/references/troubleshooting.md +18 -0
- package/plugins/cobol-modernization/skills/build-setup/SKILL.md +78 -0
- package/plugins/cobol-modernization/skills/build-setup/scripts/install-gnucobol.sh +32 -0
- package/plugins/cobol-modernization/skills/cobol-modernization-overview/SKILL.md +113 -0
- package/plugins/cobol-modernization/skills/mainfraime-removal/SKILL.md +62 -0
- package/plugins/cobol-modernization/skills/mainfraime-removal/references/cics-transformation-examples.md +45 -0
- package/plugins/cobol-modernization/skills/mainframe-planning/SKILL.md +78 -0
- package/plugins/cobol-modernization/skills/to-java-migration/SKILL.md +59 -0
- package/plugins/cobol-modernization/skills/to-java-migration/references/cobol-to-java-example.md +58 -0
- package/plugins/cobol-modernization/skills/to-java-migration/references/datatype-mappings.md +19 -0
- package/plugins/issue-duplicate-checker/.plugin/plugin.json +13 -0
- package/plugins/issue-duplicate-checker/README.md +51 -0
- package/plugins/issue-duplicate-checker/action.yml +349 -0
- package/plugins/issue-duplicate-checker/scripts/auto_close_duplicate_issues.py +569 -0
- package/plugins/issue-duplicate-checker/scripts/issue_duplicate_check_openhands.py +681 -0
- package/plugins/issue-duplicate-checker/scripts/post_duplicate_notice.js +220 -0
- package/plugins/issue-duplicate-checker/scripts/remove_duplicate_candidate_label.js +27 -0
- package/plugins/magic-test/.plugin/plugin.json +13 -0
- package/plugins/magic-test/skills/magic-word/SKILL.md +33 -0
- package/plugins/migration-scoring/.plugin/plugin.json +19 -0
- package/plugins/migration-scoring/README.md +244 -0
- package/plugins/migration-scoring/skills/migration-mapping/SKILL.md +72 -0
- package/plugins/migration-scoring/skills/migration-report/SKILL.md +118 -0
- package/plugins/migration-scoring/skills/migration-scoring-overview/SKILL.md +126 -0
- package/plugins/migration-scoring/skills/score-quality/SKILL.md +54 -0
- package/plugins/migration-scoring/skills/score-quality/references/scoring-criteria.md +30 -0
- package/plugins/migration-scoring/skills/score-style/SKILL.md +106 -0
- package/plugins/onboarding/.plugin/plugin.json +20 -0
- package/plugins/onboarding/README.md +30 -0
- package/plugins/onboarding/references/criteria.md +144 -0
- package/plugins/onboarding/skills/agent-readiness-report/README.md +23 -0
- package/plugins/onboarding/skills/agent-readiness-report/SKILL.md +122 -0
- package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_agent_instructions.sh +88 -0
- package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_build_env.sh +114 -0
- package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_feedback_loops.sh +133 -0
- package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_policy.sh +113 -0
- package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_workflows.sh +127 -0
- package/plugins/onboarding/skills/improve-agent-readiness/README.md +19 -0
- package/plugins/onboarding/skills/improve-agent-readiness/SKILL.md +167 -0
- package/plugins/onboarding/skills/setup-agents-md/README.md +15 -0
- package/plugins/onboarding/skills/setup-agents-md/SKILL.md +150 -0
- package/plugins/onboarding/skills/setup-openhands/README.md +20 -0
- package/plugins/onboarding/skills/setup-openhands/SKILL.md +56 -0
- package/plugins/onboarding/skills/setup-pr-review/README.md +23 -0
- package/plugins/onboarding/skills/setup-pr-review/SKILL.md +72 -0
- package/plugins/openhands/.plugin/plugin.json +13 -0
- package/plugins/openhands/README.md +52 -0
- package/plugins/openhands/SKILL.md +61 -0
- package/plugins/openhands/commands/create.md +55 -0
- package/plugins/openhands/commands/openhands-cloud.md +8 -0
- package/plugins/openhands/scripts/run.sh +69 -0
- package/plugins/pr-review/.plugin/plugin.json +13 -0
- package/plugins/pr-review/README.md +393 -0
- package/plugins/pr-review/action.yml +298 -0
- package/plugins/pr-review/scripts/agent_script.py +1282 -0
- package/plugins/pr-review/scripts/evaluate_review.py +655 -0
- package/plugins/pr-review/scripts/prompt.py +260 -0
- package/plugins/pr-review/workflows/pr-review-by-openhands.yml +51 -0
- package/plugins/pr-review/workflows/pr-review-evaluation.yml +85 -0
- package/plugins/qa-changes/.plugin/plugin.json +11 -0
- package/plugins/qa-changes/README.md +185 -0
- package/plugins/qa-changes/action.yml +181 -0
- package/plugins/qa-changes/scripts/agent_script.py +406 -0
- package/plugins/qa-changes/scripts/evaluate_qa_changes.py +385 -0
- package/plugins/qa-changes/scripts/prompt.py +174 -0
- package/plugins/qa-changes/workflows/qa-changes-by-openhands.yml +50 -0
- package/plugins/qa-changes/workflows/qa-changes-evaluation.yml +85 -0
- package/plugins/release-notes/.plugin/plugin.json +19 -0
- package/plugins/release-notes/README.md +283 -0
- package/plugins/release-notes/SKILL.md +83 -0
- package/plugins/release-notes/action.yml +117 -0
- package/plugins/release-notes/commands/release-notes.md +8 -0
- package/plugins/release-notes/scripts/agent_script.py +292 -0
- package/plugins/release-notes/scripts/generate_release_notes.py +733 -0
- package/plugins/release-notes/scripts/prompt.py +90 -0
- package/plugins/release-notes/scripts/validate_release_notes.py +328 -0
- package/plugins/release-notes/workflows/release-notes.yml +76 -0
- package/plugins/vulnerability-remediation/.plugin/plugin.json +19 -0
- package/plugins/vulnerability-remediation/README.md +217 -0
- package/plugins/vulnerability-remediation/action.yml +187 -0
- package/plugins/vulnerability-remediation/scripts/scan_and_remediate.py +561 -0
- package/plugins/vulnerability-remediation/workflows/vulnerability-scan.yml +87 -0
- package/pyproject.toml +12 -0
- package/release-please-config.json +16 -0
- package/scripts/sync_extensions.py +494 -0
- package/scripts/sync_openhands_sdk_skill.py +264 -0
- package/skills/README.md +159 -0
- package/skills/add-javadoc/.plugin/plugin.json +18 -0
- package/skills/add-javadoc/README.md +40 -0
- package/skills/add-javadoc/SKILL.md +35 -0
- package/skills/add-javadoc/references/example.md +32 -0
- package/skills/add-skill/.plugin/plugin.json +18 -0
- package/skills/add-skill/README.md +67 -0
- package/skills/add-skill/SKILL.md +47 -0
- package/skills/add-skill/scripts/fetch_skill.py +259 -0
- package/skills/agent-creator/.plugin/plugin.json +20 -0
- package/skills/agent-creator/README.md +104 -0
- package/skills/agent-creator/SKILL.md +190 -0
- package/skills/agent-creator/commands/agent-creator.md +8 -0
- package/skills/agent-creator/references/fallback.md +117 -0
- package/skills/agent-memory/.plugin/plugin.json +18 -0
- package/skills/agent-memory/README.md +35 -0
- package/skills/agent-memory/SKILL.md +30 -0
- package/skills/agent-memory/commands/remember.md +8 -0
- package/skills/agent-sdk-builder/.plugin/plugin.json +18 -0
- package/skills/agent-sdk-builder/README.md +40 -0
- package/skills/agent-sdk-builder/SKILL.md +37 -0
- package/skills/agent-sdk-builder/commands/agent-builder.md +8 -0
- package/skills/azure-devops/.plugin/plugin.json +18 -0
- package/skills/azure-devops/README.md +55 -0
- package/skills/azure-devops/SKILL.md +50 -0
- package/skills/bitbucket/.plugin/plugin.json +17 -0
- package/skills/bitbucket/README.md +50 -0
- package/skills/bitbucket/SKILL.md +45 -0
- package/skills/code-review/.plugin/plugin.json +19 -0
- package/skills/code-review/README.md +18 -0
- package/skills/code-review/SKILL.md +208 -0
- package/skills/code-review/commands/codereview-roasted.md +8 -0
- package/skills/code-review/commands/codereview.md +8 -0
- package/skills/code-review/references/risk-evaluation.md +41 -0
- package/skills/code-review/references/supply-chain-security.md +31 -0
- package/skills/code-simplifier/.plugin/plugin.json +21 -0
- package/skills/code-simplifier/README.md +30 -0
- package/skills/code-simplifier/SKILL.md +91 -0
- package/skills/code-simplifier/commands/simplify.md +8 -0
- package/skills/code-simplifier/references/code-quality-review.md +86 -0
- package/skills/code-simplifier/references/code-reuse-review.md +63 -0
- package/skills/code-simplifier/references/efficiency-review.md +81 -0
- package/skills/datadog/.plugin/plugin.json +19 -0
- package/skills/datadog/README.md +100 -0
- package/skills/datadog/SKILL.md +95 -0
- package/skills/deno/.plugin/plugin.json +18 -0
- package/skills/deno/README.md +5 -0
- package/skills/deno/SKILL.md +99 -0
- package/skills/deno/references/README.md +6 -0
- package/skills/discord/.plugin/plugin.json +18 -0
- package/skills/discord/README.md +31 -0
- package/skills/discord/SKILL.md +109 -0
- package/skills/discord/__init__.py +0 -0
- package/skills/discord/references/REFERENCE.md +78 -0
- package/skills/discord/scripts/__init__.py +0 -0
- package/skills/discord/scripts/_http.py +127 -0
- package/skills/discord/scripts/post_webhook.py +106 -0
- package/skills/discord/scripts/send_message.py +102 -0
- package/skills/docker/.plugin/plugin.json +17 -0
- package/skills/docker/README.md +34 -0
- package/skills/docker/SKILL.md +29 -0
- package/skills/evidence-based-citations/.plugin/plugin.json +20 -0
- package/skills/evidence-based-citations/README.md +31 -0
- package/skills/evidence-based-citations/SKILL.md +59 -0
- package/skills/flarglebargle/.plugin/plugin.json +16 -0
- package/skills/flarglebargle/README.md +14 -0
- package/skills/flarglebargle/SKILL.md +9 -0
- package/skills/frontend-design/.plugin/plugin.json +21 -0
- package/skills/frontend-design/LICENSE.txt +177 -0
- package/skills/frontend-design/README.md +42 -0
- package/skills/frontend-design/SKILL.md +42 -0
- package/skills/github/.plugin/plugin.json +19 -0
- package/skills/github/README.md +42 -0
- package/skills/github/SKILL.md +106 -0
- package/skills/github-pr-review/.plugin/plugin.json +18 -0
- package/skills/github-pr-review/README.md +145 -0
- package/skills/github-pr-review/SKILL.md +148 -0
- package/skills/github-pr-review/commands/github-pr-review.md +8 -0
- package/skills/github-pr-reviewer/.plugin/plugin.json +20 -0
- package/skills/github-pr-reviewer/README.md +34 -0
- package/skills/github-pr-reviewer/SKILL.md +89 -0
- package/skills/github-pr-reviewer/commands/pr-reviewer:setup.md +8 -0
- package/skills/github-repo-monitor/.plugin/plugin.json +22 -0
- package/skills/github-repo-monitor/README.md +70 -0
- package/skills/github-repo-monitor/SKILL.md +316 -0
- package/skills/github-repo-monitor/commands/github-monitor:poll.md +8 -0
- package/skills/github-repo-monitor/references/github-api.md +241 -0
- package/skills/github-repo-monitor/references/state-schema.md +160 -0
- package/skills/github-repo-monitor/scripts/main.py +915 -0
- package/skills/github-repo-monitor/tests/test_main.py +400 -0
- package/skills/gitlab/.plugin/plugin.json +17 -0
- package/skills/gitlab/README.md +37 -0
- package/skills/gitlab/SKILL.md +32 -0
- package/skills/incident-retrospective/.plugin/plugin.json +21 -0
- package/skills/incident-retrospective/README.md +34 -0
- package/skills/incident-retrospective/SKILL.md +98 -0
- package/skills/incident-retrospective/commands/incident-retro:setup.md +8 -0
- package/skills/iterate/.plugin/plugin.json +13 -0
- package/skills/iterate/README.md +25 -0
- package/skills/iterate/SKILL.md +399 -0
- package/skills/iterate/commands/babysit.md +8 -0
- package/skills/iterate/commands/iterate.md +8 -0
- package/skills/iterate/commands/verify.md +8 -0
- package/skills/iterate/references/heuristics.md +58 -0
- package/skills/iterate/references/verification.md +96 -0
- package/skills/jupyter/.plugin/plugin.json +18 -0
- package/skills/jupyter/README.md +55 -0
- package/skills/jupyter/SKILL.md +50 -0
- package/skills/kubernetes/.plugin/plugin.json +18 -0
- package/skills/kubernetes/README.md +53 -0
- package/skills/kubernetes/SKILL.md +48 -0
- package/skills/learn-from-code-review/.plugin/plugin.json +19 -0
- package/skills/learn-from-code-review/README.md +64 -0
- package/skills/learn-from-code-review/SKILL.md +186 -0
- package/skills/learn-from-code-review/commands/learn-from-reviews.md +8 -0
- package/skills/linear/.plugin/plugin.json +19 -0
- package/skills/linear/README.md +58 -0
- package/skills/linear/SKILL.md +213 -0
- package/skills/linear-triage/.plugin/plugin.json +21 -0
- package/skills/linear-triage/README.md +34 -0
- package/skills/linear-triage/SKILL.md +91 -0
- package/skills/linear-triage/commands/linear-triage:setup.md +8 -0
- package/skills/notion/.plugin/plugin.json +17 -0
- package/skills/notion/README.md +114 -0
- package/skills/notion/SKILL.md +109 -0
- package/skills/npm/.plugin/plugin.json +17 -0
- package/skills/npm/README.md +14 -0
- package/skills/npm/SKILL.md +9 -0
- package/skills/openhands-api/.plugin/plugin.json +22 -0
- package/skills/openhands-api/README.md +48 -0
- package/skills/openhands-api/SKILL.md +399 -0
- package/skills/openhands-api/references/README.md +33 -0
- package/skills/openhands-api/references/TROUBLESHOOTING.md +81 -0
- package/skills/openhands-api/references/example_prompt.md +12 -0
- package/skills/openhands-api/scripts/openhands_api.py +606 -0
- package/skills/openhands-api/scripts/openhands_api.ts +252 -0
- package/skills/openhands-automation/.plugin/plugin.json +19 -0
- package/skills/openhands-automation/README.md +89 -0
- package/skills/openhands-automation/SKILL.md +875 -0
- package/skills/openhands-automation/commands/automation:create.md +8 -0
- package/skills/openhands-automation/references/ab-testing.md +185 -0
- package/skills/openhands-automation/references/custom-automation.md +644 -0
- package/skills/openhands-sdk/.plugin/plugin.json +20 -0
- package/skills/openhands-sdk/README.md +22 -0
- package/skills/openhands-sdk/SKILL.md +229 -0
- package/skills/openhands-sdk/commands/sdk.md +8 -0
- package/skills/pdflatex/.plugin/plugin.json +18 -0
- package/skills/pdflatex/README.md +39 -0
- package/skills/pdflatex/SKILL.md +34 -0
- package/skills/prd/.plugin/plugin.json +19 -0
- package/skills/prd/README.md +28 -0
- package/skills/prd/SKILL.md +237 -0
- package/skills/prd/commands/prd.md +8 -0
- package/skills/qa-changes/README.md +18 -0
- package/skills/qa-changes/SKILL.md +229 -0
- package/skills/qa-changes/commands/qa-changes.md +8 -0
- package/skills/release-notes/README.md +24 -0
- package/skills/release-notes/SKILL.md +19 -0
- package/skills/release-notes/commands/release-notes.md +8 -0
- package/skills/research-brief/.plugin/plugin.json +20 -0
- package/skills/research-brief/README.md +34 -0
- package/skills/research-brief/SKILL.md +99 -0
- package/skills/research-brief/commands/research-brief:setup.md +8 -0
- package/skills/security/.plugin/plugin.json +18 -0
- package/skills/security/README.md +38 -0
- package/skills/security/SKILL.md +33 -0
- package/skills/skill-creator/.plugin/plugin.json +17 -0
- package/skills/skill-creator/LICENSE.txt +202 -0
- package/skills/skill-creator/README.md +182 -0
- package/skills/skill-creator/SKILL.md +545 -0
- package/skills/skill-creator/references/output-patterns.md +82 -0
- package/skills/skill-creator/references/workflows.md +28 -0
- package/skills/skill-creator/scripts/init_skill.py +303 -0
- package/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/skills/slack-channel-monitor/.plugin/plugin.json +21 -0
- package/skills/slack-channel-monitor/README.md +91 -0
- package/skills/slack-channel-monitor/SKILL.md +276 -0
- package/skills/slack-channel-monitor/commands/slack-monitor:poll.md +8 -0
- package/skills/slack-channel-monitor/references/slack-api.md +207 -0
- package/skills/slack-channel-monitor/references/state-schema.md +180 -0
- package/skills/slack-channel-monitor/scripts/main.py +962 -0
- package/skills/slack-standup-digest/.plugin/plugin.json +21 -0
- package/skills/slack-standup-digest/README.md +34 -0
- package/skills/slack-standup-digest/SKILL.md +92 -0
- package/skills/slack-standup-digest/commands/standup-digest:setup.md +8 -0
- package/skills/spark-version-upgrade/.plugin/plugin.json +20 -0
- package/skills/spark-version-upgrade/README.md +54 -0
- package/skills/spark-version-upgrade/SKILL.md +233 -0
- package/skills/ssh/.plugin/plugin.json +18 -0
- package/skills/ssh/README.md +140 -0
- package/skills/ssh/SKILL.md +135 -0
- package/skills/swift-linux/.plugin/plugin.json +17 -0
- package/skills/swift-linux/README.md +86 -0
- package/skills/swift-linux/SKILL.md +81 -0
- package/skills/theme-factory/.plugin/plugin.json +19 -0
- package/skills/theme-factory/LICENSE.txt +202 -0
- package/skills/theme-factory/README.md +58 -0
- package/skills/theme-factory/SKILL.md +59 -0
- package/skills/theme-factory/theme-showcase.pdf +0 -0
- package/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/skills/theme-factory/themes/desert-rose.md +19 -0
- package/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/skills/theme-factory/themes/golden-hour.md +19 -0
- package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/skills/uv/.plugin/plugin.json +18 -0
- package/skills/uv/README.md +5 -0
- package/skills/uv/SKILL.md +95 -0
- package/skills/uv/references/README.md +5 -0
- package/skills/vercel/.plugin/plugin.json +18 -0
- package/skills/vercel/README.md +108 -0
- package/skills/vercel/SKILL.md +103 -0
- package/tests/test_add_skill_installs_to_agents_dir.py +42 -0
- package/tests/test_catalogs.py +109 -0
- package/tests/test_code_review_risk_evaluation.py +94 -0
- package/tests/test_issue_duplicate_checker.py +240 -0
- package/tests/test_openhands_api_python.py +152 -0
- package/tests/test_plugin_manifest.py +83 -0
- package/tests/test_pr_review_diff_payload.py +202 -0
- package/tests/test_pr_review_feedback.py +263 -0
- package/tests/test_pr_review_prompt.py +152 -0
- package/tests/test_pr_review_review_context.py +253 -0
- package/tests/test_qa_changes.py +232 -0
- package/tests/test_qa_changes_evaluation.py +259 -0
- package/tests/test_release_notes_generator.py +990 -0
- package/tests/test_sdk_loading.py +150 -0
- package/tests/test_skill_plugin_loading.py +149 -0
- package/tests/test_skills_have_readme.py +66 -0
- package/tests/test_sync_extensions.py +292 -0
- package/tests/test_workflow_sync.py +46 -0
- package/utils/analysis/README.md +7 -0
- package/utils/analysis/laminar_signals/README.md +211 -0
- package/utils/analysis/laminar_signals/analyze.py +780 -0
- package/utils/analysis/laminar_signals/templates/default.j2 +49 -0
- package/utils/analysis/laminar_signals/templates/pr_review.j2 +61 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jupyter
|
|
3
|
+
description: Read, modify, execute, and convert Jupyter notebooks programmatically. Use when working with .ipynb files for data science workflows, including editing cells, clearing outputs, or converting to other formats.
|
|
4
|
+
triggers:
|
|
5
|
+
- ipynb
|
|
6
|
+
- jupyter
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Jupyter Notebook Guide
|
|
10
|
+
|
|
11
|
+
Notebooks are JSON files. Cells are in `nb['cells']`, each has `source` (list of strings) and `cell_type` ('code', 'markdown', or 'raw').
|
|
12
|
+
|
|
13
|
+
## Modifying Notebooks
|
|
14
|
+
```python
|
|
15
|
+
import json
|
|
16
|
+
with open('notebook.ipynb') as f:
|
|
17
|
+
nb = json.load(f)
|
|
18
|
+
# Modify nb['cells'][i]['source'], then:
|
|
19
|
+
with open('notebook.ipynb', 'w') as f:
|
|
20
|
+
json.dump(nb, f, indent=1)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Executing & Converting
|
|
24
|
+
```bash
|
|
25
|
+
jupyter nbconvert --to notebook --execute --inplace notebook.ipynb # Execute in place
|
|
26
|
+
jupyter nbconvert --to html notebook.ipynb # Convert to HTML
|
|
27
|
+
jupyter nbconvert --to script notebook.ipynb # Convert to Python
|
|
28
|
+
jupyter nbconvert --to markdown notebook.ipynb # Convert to Markdown
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Finding Code
|
|
32
|
+
```bash
|
|
33
|
+
grep -n "search_term" notebook.ipynb
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Cell Structure
|
|
37
|
+
```python
|
|
38
|
+
# Code cell
|
|
39
|
+
{"cell_type": "code", "execution_count": None, "metadata": {}, "outputs": [], "source": ["code\n"]}
|
|
40
|
+
# Markdown cell
|
|
41
|
+
{"cell_type": "markdown", "metadata": {}, "source": ["# Title\n"]}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Clear Outputs
|
|
45
|
+
```python
|
|
46
|
+
for cell in nb['cells']:
|
|
47
|
+
if cell['cell_type'] == 'code':
|
|
48
|
+
cell['outputs'] = []
|
|
49
|
+
cell['execution_count'] = None
|
|
50
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "kubernetes",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Set up and manage local Kubernetes clusters using KIND (Kubernetes IN Docker). Use when testing Kubernetes applications locally or developing cloud-native workloads.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands",
|
|
7
|
+
"email": "contact@all-hands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/OpenHands/extensions",
|
|
10
|
+
"repository": "https://github.com/OpenHands/extensions",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"kubernetes",
|
|
14
|
+
"k8s",
|
|
15
|
+
"kind",
|
|
16
|
+
"cloud-native"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Kubernetes
|
|
2
|
+
|
|
3
|
+
Set up and manage local Kubernetes clusters using KIND (Kubernetes IN Docker). Use when testing Kubernetes applications locally or developing cloud-native workloads.
|
|
4
|
+
|
|
5
|
+
## Triggers
|
|
6
|
+
|
|
7
|
+
This skill is activated by the following keywords:
|
|
8
|
+
|
|
9
|
+
- `kubernetes`
|
|
10
|
+
- `k8s`
|
|
11
|
+
- `kube`
|
|
12
|
+
|
|
13
|
+
## Details
|
|
14
|
+
|
|
15
|
+
# Kubernetes Local Development with KIND
|
|
16
|
+
|
|
17
|
+
## KIND Installation and Setup
|
|
18
|
+
|
|
19
|
+
KIND (Kubernetes IN Docker) is a tool for running local Kubernetes clusters using Docker containers as nodes. It's designed for testing Kubernetes applications locally.
|
|
20
|
+
|
|
21
|
+
IMPORTANT: Before you proceed with installation, make sure you have docker installed locally.
|
|
22
|
+
|
|
23
|
+
### Installation
|
|
24
|
+
|
|
25
|
+
To install KIND on a Debian/Ubuntu system:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Download KIND binary
|
|
29
|
+
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.22.0/kind-linux-amd64
|
|
30
|
+
# Make it executable
|
|
31
|
+
chmod +x ./kind
|
|
32
|
+
# Move to a directory in your PATH
|
|
33
|
+
sudo mv ./kind /usr/local/bin/
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
To install kubectl:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Download kubectl
|
|
40
|
+
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
|
41
|
+
# Make it executable
|
|
42
|
+
chmod +x kubectl
|
|
43
|
+
# Move to a directory in your PATH
|
|
44
|
+
sudo mv ./kubectl /usr/local/bin/
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Creating a Cluster
|
|
48
|
+
|
|
49
|
+
Create a basic KIND cluster:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
kind create cluster
|
|
53
|
+
```
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kubernetes
|
|
3
|
+
description: Set up and manage local Kubernetes clusters using KIND (Kubernetes IN Docker). Use when testing Kubernetes applications locally or developing cloud-native workloads.
|
|
4
|
+
triggers:
|
|
5
|
+
- kubernetes
|
|
6
|
+
- k8s
|
|
7
|
+
- kube
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Kubernetes Local Development with KIND
|
|
11
|
+
|
|
12
|
+
## KIND Installation and Setup
|
|
13
|
+
|
|
14
|
+
KIND (Kubernetes IN Docker) is a tool for running local Kubernetes clusters using Docker containers as nodes. It's designed for testing Kubernetes applications locally.
|
|
15
|
+
|
|
16
|
+
IMPORTANT: Before you proceed with installation, make sure you have docker installed locally.
|
|
17
|
+
|
|
18
|
+
### Installation
|
|
19
|
+
|
|
20
|
+
To install KIND on a Debian/Ubuntu system:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Download KIND binary
|
|
24
|
+
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.22.0/kind-linux-amd64
|
|
25
|
+
# Make it executable
|
|
26
|
+
chmod +x ./kind
|
|
27
|
+
# Move to a directory in your PATH
|
|
28
|
+
sudo mv ./kind /usr/local/bin/
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
To install kubectl:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Download kubectl
|
|
35
|
+
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
|
36
|
+
# Make it executable
|
|
37
|
+
chmod +x kubectl
|
|
38
|
+
# Move to a directory in your PATH
|
|
39
|
+
sudo mv ./kubectl /usr/local/bin/
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Creating a Cluster
|
|
43
|
+
|
|
44
|
+
Create a basic KIND cluster:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
kind create cluster
|
|
48
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "learn-from-code-review",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Distill code review feedback from GitHub PRs into reusable skills and guidelines. Use when users ask to learn from code reviews, extract review patterns, or generate coding standards from historica...",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands",
|
|
7
|
+
"email": "contact@all-hands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/OpenHands/extensions",
|
|
10
|
+
"repository": "https://github.com/OpenHands/extensions",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"code-review",
|
|
14
|
+
"learning",
|
|
15
|
+
"skills",
|
|
16
|
+
"guidelines",
|
|
17
|
+
"pr-feedback"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Learn from Code Review
|
|
2
|
+
|
|
3
|
+
Distill code review feedback from GitHub pull requests into reusable skills and repository guidelines.
|
|
4
|
+
|
|
5
|
+
## What It Does
|
|
6
|
+
|
|
7
|
+
This skill analyzes PR review comments from a repository and extracts recurring patterns of feedback. These patterns are then transformed into:
|
|
8
|
+
|
|
9
|
+
- **Repository-specific skills** (`.openhands/skills/`) for domain-specific patterns
|
|
10
|
+
- **AGENTS.md updates** for general coding conventions and best practices
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- "Learn from our code reviews"
|
|
15
|
+
- "Distill PR feedback into guidelines"
|
|
16
|
+
- "What patterns do reviewers keep pointing out?"
|
|
17
|
+
- "Generate coding standards from review history"
|
|
18
|
+
- Running `/learn-from-reviews`
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
|
|
22
|
+
- `GITHUB_TOKEN` environment variable
|
|
23
|
+
- GitHub CLI (`gh`) available
|
|
24
|
+
|
|
25
|
+
## Example
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
User: Learn from our code reviews over the past month
|
|
29
|
+
|
|
30
|
+
Agent: I'll analyze recent PR review comments and distill them into actionable guidelines.
|
|
31
|
+
|
|
32
|
+
[Analyzes 25 merged PRs with 150 review comments]
|
|
33
|
+
[Filters out bot comments and low-signal responses]
|
|
34
|
+
[Identifies 4 recurring patterns]
|
|
35
|
+
|
|
36
|
+
Found the following patterns from code review feedback:
|
|
37
|
+
|
|
38
|
+
1. Error Handling (12 comments)
|
|
39
|
+
- Always include context when logging errors
|
|
40
|
+
- Use structured error responses in APIs
|
|
41
|
+
|
|
42
|
+
2. Testing (8 comments)
|
|
43
|
+
- Add edge case tests for validation logic
|
|
44
|
+
- Mock external services consistently
|
|
45
|
+
|
|
46
|
+
3. Database Queries (6 comments)
|
|
47
|
+
- Use parameterized queries exclusively
|
|
48
|
+
- Add appropriate indexes for new queries
|
|
49
|
+
|
|
50
|
+
I'll create a draft PR with:
|
|
51
|
+
- New skill: `.openhands/skills/error-handling/SKILL.md`
|
|
52
|
+
- Updates to `AGENTS.md` with testing and database guidelines
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Output
|
|
56
|
+
|
|
57
|
+
The skill generates a draft PR containing proposed changes based on the analysis. Human review is expected before merging.
|
|
58
|
+
|
|
59
|
+
## Related Skills
|
|
60
|
+
|
|
61
|
+
- `github-pr-review` - Post structured code reviews
|
|
62
|
+
- `code-review` - Perform code reviews
|
|
63
|
+
- `skill-creator` - Create new skills manually
|
|
64
|
+
- `agent-memory` - Persist repository knowledge
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: learn-from-code-review
|
|
3
|
+
description: Distill code review feedback from GitHub PRs into reusable skills and guidelines. This skill should be used when users ask to "learn from code reviews", "distill PR feedback", "improve coding standards", "extract learnings from reviews", or want to generate skills/guidelines from historical review comments.
|
|
4
|
+
triggers:
|
|
5
|
+
- /learn-from-reviews
|
|
6
|
+
- learn from code review
|
|
7
|
+
- distill reviews
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Learn from Code Review
|
|
11
|
+
|
|
12
|
+
Analyze code review comments from GitHub pull requests and distill them into reusable skills or repository guidelines that improve future code quality.
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
Code review feedback contains valuable institutional knowledge that often gets buried across hundreds of PRs. This skill extracts meaningful patterns from review comments and transforms them into:
|
|
17
|
+
|
|
18
|
+
1. **Repository-specific skills** - Placed in `.openhands/skills/` for domain-specific patterns
|
|
19
|
+
2. **AGENTS.md guidelines** - Overall repository conventions and best practices
|
|
20
|
+
|
|
21
|
+
## Prerequisites
|
|
22
|
+
|
|
23
|
+
- `GITHUB_TOKEN` environment variable must be set
|
|
24
|
+
- GitHub CLI (`gh`) should be available
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
### Step 1: Identify Target Repository
|
|
29
|
+
|
|
30
|
+
Determine the repository to analyze:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Get current repo info
|
|
34
|
+
gh repo view --json nameWithOwner -q '.nameWithOwner'
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If not in a repository, ask the user which repository to analyze.
|
|
38
|
+
|
|
39
|
+
### Step 2: Fetch Review Comments
|
|
40
|
+
|
|
41
|
+
Retrieve PR review comments from the repository:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Fetch merged PRs from the last 30 days (adjustable)
|
|
45
|
+
gh pr list --repo {owner}/{repo} \
|
|
46
|
+
--state merged \
|
|
47
|
+
--limit 50 \
|
|
48
|
+
--json number,title,mergedAt
|
|
49
|
+
|
|
50
|
+
# For each PR, fetch review comments
|
|
51
|
+
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments \
|
|
52
|
+
--jq '.[] | {body: .body, path: .path, user: .user.login, created_at: .created_at}'
|
|
53
|
+
|
|
54
|
+
# Also fetch review-level comments (not tied to specific lines)
|
|
55
|
+
gh api repos/{owner}/{repo}/pulls/{pr_number}/reviews \
|
|
56
|
+
--jq '.[] | select(.body != "") | {body: .body, user: .user.login, state: .state}'
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Step 3: Filter and Categorize Comments
|
|
60
|
+
|
|
61
|
+
Apply noise filtering to keep only meaningful feedback:
|
|
62
|
+
|
|
63
|
+
**Exclude:**
|
|
64
|
+
- Bot comments (dependabot, copilot, github-actions, etc.)
|
|
65
|
+
- Low-signal responses ("LGTM", "+1", "looks good", "thanks", "nice")
|
|
66
|
+
- Comments shorter than 30 characters
|
|
67
|
+
- Auto-generated comments (CI status, coverage reports)
|
|
68
|
+
|
|
69
|
+
**Categorize remaining comments by:**
|
|
70
|
+
- Security concerns
|
|
71
|
+
- Performance patterns
|
|
72
|
+
- Code style/conventions
|
|
73
|
+
- Architecture/design patterns
|
|
74
|
+
- Error handling
|
|
75
|
+
- Testing requirements
|
|
76
|
+
- Documentation standards
|
|
77
|
+
|
|
78
|
+
### Step 4: Distill Patterns
|
|
79
|
+
|
|
80
|
+
For each category with sufficient examples (3+ similar comments), identify:
|
|
81
|
+
|
|
82
|
+
1. **The recurring issue** - What mistake or oversight keeps appearing
|
|
83
|
+
2. **The desired pattern** - What reviewers consistently ask for
|
|
84
|
+
3. **Example context** - Concrete before/after code snippets when available
|
|
85
|
+
|
|
86
|
+
### Step 5: Generate Output
|
|
87
|
+
|
|
88
|
+
If clear, actionable patterns emerge, generate focused skill files. If no clear patterns emerge, report this to the user—it's fine to produce no output when the codebase already has strong conventions or when review comments don't cluster into recurring themes.
|
|
89
|
+
|
|
90
|
+
When creating skills, place them in `.openhands/skills/{domain-name}/SKILL.md`:
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
---
|
|
94
|
+
name: database-queries
|
|
95
|
+
description: Database query patterns and best practices for this repository.
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
# Database Query Guidelines
|
|
99
|
+
|
|
100
|
+
### Always Use Parameterized Queries
|
|
101
|
+
[Pattern description with examples]
|
|
102
|
+
|
|
103
|
+
### Connection Pool Management
|
|
104
|
+
[Pattern description with examples]
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Prefer skills over AGENTS.md updates, since AGENTS.md typically already contains general coding guidelines.
|
|
108
|
+
|
|
109
|
+
### Step 6: Create Draft PR (if applicable)
|
|
110
|
+
|
|
111
|
+
Use the `create_pr` tool to open a draft PR with the proposed changes. The PR description should include:
|
|
112
|
+
- Number of PRs analyzed
|
|
113
|
+
- Number of comments processed
|
|
114
|
+
- Categories of patterns found
|
|
115
|
+
- List of proposed changes (new skills and/or AGENTS.md updates)
|
|
116
|
+
|
|
117
|
+
## Example Output
|
|
118
|
+
|
|
119
|
+
### Sample Skill: API Error Handling
|
|
120
|
+
|
|
121
|
+
```yaml
|
|
122
|
+
---
|
|
123
|
+
name: api-error-handling
|
|
124
|
+
description: API error handling patterns for this repository.
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
# API Error Handling
|
|
128
|
+
|
|
129
|
+
## Always Return Structured Errors
|
|
130
|
+
|
|
131
|
+
❌ Avoid:
|
|
132
|
+
```python
|
|
133
|
+
return {"error": str(e)}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
✅ Prefer:
|
|
137
|
+
```python
|
|
138
|
+
return {
|
|
139
|
+
"error": {
|
|
140
|
+
"code": "VALIDATION_ERROR",
|
|
141
|
+
"message": "Invalid input",
|
|
142
|
+
"details": {"field": "email", "reason": "Invalid format"}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Log Before Returning Errors
|
|
148
|
+
|
|
149
|
+
```python
|
|
150
|
+
logger.error(f"API error in {endpoint}: {e}", exc_info=True)
|
|
151
|
+
return error_response(e)
|
|
152
|
+
```
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Defaults
|
|
156
|
+
|
|
157
|
+
This workflow analyzes PRs from the past 30 days by default.
|
|
158
|
+
|
|
159
|
+
## Best Practices
|
|
160
|
+
|
|
161
|
+
1. **Run periodically** - Schedule monthly or quarterly to capture evolving patterns
|
|
162
|
+
2. **Review before merging** - Generated content is a draft; human review is essential
|
|
163
|
+
3. **Iterate** - Refine patterns based on team feedback
|
|
164
|
+
4. **Avoid duplication** - Check existing AGENTS.md and skills before adding
|
|
165
|
+
5. **Cite sources** - Reference PR numbers when documenting patterns
|
|
166
|
+
|
|
167
|
+
## Error Handling
|
|
168
|
+
|
|
169
|
+
Handle these common edge cases gracefully:
|
|
170
|
+
|
|
171
|
+
- **Repository has few PRs**: If fewer than 10 merged PRs exist in the timeframe, inform the user that there may not be enough data to identify patterns. Proceed with analysis but note the limited sample size.
|
|
172
|
+
- **No patterns emerge**: When comments don't cluster into recurring themes (common for well-established codebases), report this to the user and suggest either expanding the time range or that the codebase may already have strong conventions.
|
|
173
|
+
- **Token lacks repository access**: If the GitHub API returns 403/404, explain that the token may not have access to the repository and suggest checking token permissions.
|
|
174
|
+
- **`gh` CLI unavailable**: Fall back to direct GitHub API calls using `curl` with `$GITHUB_TOKEN`, or inform the user that `gh` needs to be installed.
|
|
175
|
+
|
|
176
|
+
## Limitations
|
|
177
|
+
|
|
178
|
+
- Only analyzes accessible repositories (requires appropriate permissions)
|
|
179
|
+
- Cannot capture verbal feedback from pair programming or meetings
|
|
180
|
+
- Patterns may reflect individual reviewer preferences vs. team consensus
|
|
181
|
+
- Historical comments may reference outdated code patterns
|
|
182
|
+
|
|
183
|
+
## Additional Resources
|
|
184
|
+
|
|
185
|
+
For posting structured code reviews, see the `github-pr-review` skill.
|
|
186
|
+
For creating new skills, see the `skill-creator` skill.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
# auto-generated by sync_extensions.py
|
|
3
|
+
description: Distill code review feedback from GitHub PRs into reusable skills and guidelines. This skill should be used when users ask to "learn from code reviews", "distill PR feedback", "improve coding standards", "extract learnings from reviews", or want to generate skills/guidelines from historical review comments.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Read and follow the complete instructions in the SKILL.md file located in this skill's directory.
|
|
7
|
+
|
|
8
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "linear",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Interact with Linear project management - query issues, update status, create tickets using the Linear GraphQL API.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "OpenHands",
|
|
7
|
+
"email": "contact@all-hands.dev"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/OpenHands/extensions",
|
|
10
|
+
"repository": "https://github.com/OpenHands/extensions",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"linear",
|
|
14
|
+
"ticket",
|
|
15
|
+
"issue",
|
|
16
|
+
"project-management",
|
|
17
|
+
"graphql"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Linear
|
|
2
|
+
|
|
3
|
+
Interact with Linear project management - query issues, update status, create tickets, and manage workflows using the Linear GraphQL API. Use when working with Linear tickets, sprints, or project tracking.
|
|
4
|
+
|
|
5
|
+
## Triggers
|
|
6
|
+
|
|
7
|
+
This skill is activated by the following keywords:
|
|
8
|
+
|
|
9
|
+
- `linear`
|
|
10
|
+
- `ticket`
|
|
11
|
+
- `issue tracking`
|
|
12
|
+
|
|
13
|
+
## Details
|
|
14
|
+
|
|
15
|
+
You need access to an environment variable, `LINEAR_API_KEY`, which allows you to interact with the Linear API.
|
|
16
|
+
|
|
17
|
+
<IMPORTANT>
|
|
18
|
+
You can use `curl` with the `LINEAR_API_KEY` to interact with Linear's GraphQL API.
|
|
19
|
+
ALWAYS use the Linear API for operations instead of a web browser.
|
|
20
|
+
Before performing any Linear operations, verify the API key is available by checking the environment variable.
|
|
21
|
+
</IMPORTANT>
|
|
22
|
+
|
|
23
|
+
## Features
|
|
24
|
+
|
|
25
|
+
- **Query Issues**: Get assigned issues, filter by priority, search by identifier
|
|
26
|
+
- **Update State**: Change issue status with workflow state lookup
|
|
27
|
+
- **Comments**: Add comments to issues
|
|
28
|
+
- **Create Issues**: Create new tickets with proper team assignment
|
|
29
|
+
- **Reference**: Priority levels, state types, API documentation links
|
|
30
|
+
|
|
31
|
+
## Important Concepts
|
|
32
|
+
|
|
33
|
+
### Linear Identifiers
|
|
34
|
+
|
|
35
|
+
Linear uses two types of identifiers for issues:
|
|
36
|
+
|
|
37
|
+
- **Human-readable identifier** (e.g., `ALL-1234`): Displayed to users, used in search queries
|
|
38
|
+
- **UUID** (e.g., `a1b2c3d4-e5f6-7890-abcd-ef1234567890`): Required for all mutations
|
|
39
|
+
|
|
40
|
+
**Important workflow**: When updating issues:
|
|
41
|
+
1. Search using the human-readable identifier
|
|
42
|
+
2. Extract the UUID from the query result
|
|
43
|
+
3. Use the UUID in mutation operations
|
|
44
|
+
|
|
45
|
+
### Priority Levels
|
|
46
|
+
|
|
47
|
+
| Priority | Label | Description |
|
|
48
|
+
|----------|-------|-------------|
|
|
49
|
+
| 1 | Urgent | Work on immediately |
|
|
50
|
+
| 2 | High | Work on first |
|
|
51
|
+
| 3 | Medium | Normal priority |
|
|
52
|
+
| 4 | Low | When time permits |
|
|
53
|
+
| 0 | None | Backlog |
|
|
54
|
+
|
|
55
|
+
## Documentation
|
|
56
|
+
|
|
57
|
+
- [Linear API Documentation](https://developers.linear.app/docs/graphql/working-with-the-graphql-api)
|
|
58
|
+
- [GraphQL Schema Reference](https://studio.apollographql.com/public/Linear-API/variant/current/schema/reference)
|