Skip to main content

galaxy-context

Galaxy project development conventions and skill routing guide. ALWAYS load this skill when working in a Galaxy codebase. Routes to appropriate skills: use /galaxy-db-migration for database/Alembic/schema changes, /galaxy-api-endpoint for creating REST API endpoints/FastAPI routers, /galaxy-testing for running or writing tests, /galaxy-linting for code formatting/linting/type checking. Use galaxy-explorer agent for codebase architecture questions.

소스 정보

저장소
arash77/galaxy-claude-marketplace
최근 소스 활동
2026년 2월 11일 13:36
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
galaxy-context
description
Galaxy project development conventions and skill routing guide. ALWAYS load this skill when working in a Galaxy codebase. Routes to appropriate skills: use /galaxy-db-migration for database/Alembic/schema changes, /galaxy-api-endpoint for creating REST API endpoints/FastAPI routers, /galaxy-testing for running or writing tests, /galaxy-linting for code formatting/linting/type checking. Use galaxy-explorer agent for codebase architecture questions.
user-invocable
false
# Galaxy Development Context & Skill Routing This skill provides essential Galaxy conventions and routing guidance to help you proactively use the right Galaxy skills and agents. ## Automatic Skill Invocation - CRITICAL **You should PROACTIVELY invoke Galaxy skills when you detect relevant tasks**, without waiting for explicit user requests. Match user intent to skills below. --- ## Skill Routing Guide ### 1. Database Operations → /galaxy-db-migration **Invoke when user mentions:** - "database", "schema", "migration", "Alembic" - "add column", "create table", "modify database", "database version" - "upgrade database", "downgrade database", "migration error" - SQL model changes in `lib/galaxy/model/__init__.py` - Alembic revision files in `lib/galaxy/model/migrations/alembic/versions_gxy/` **Examples:** - "I need to add a new table for credentials" → `/galaxy-db-migration create` - "How do I add a column to the workflow table?" → `/galaxy-db-migration create` - "The database won't upgrade" → `/galaxy-db-migration troubleshoot` - "Check if migration is needed" → `/galaxy-db-migration status` **Actions:** - `create` - Creating new migrations after model changes - `upgrade` - Upgrading database to latest version - `downgrade` - Rolling back migrations - `status` - Checking database version vs codebase - `troubleshoot` - Diagnosing migration errors --- ### 2. API Development → /galaxy-api-endpoint **Invoke when user mentions:** - "API", "endpoint", "REST", "route", "router" - "FastAPI", "Pydantic", "schema", "request/response model" - "create endpoint for...", "add API for...", "new endpoint" - Files in `lib/galaxy/webapps/galaxy/api/` - Files in `lib/galaxy/schema/` **Examples:** - "Create an API endpoint for managing credentials" → `/galaxy-api-endpoint credentials` - "I need a REST API for workflows" → `/galaxy-api-endpoint workflows` - "Add a new route to handle..." → `/galaxy-api-endpoint [resource-name]` **Action:** - Always pass the resource name as argument (e.g., `/galaxy-api-endpoint credentials`) - Guides through: Pydantic schemas → Manager logic → FastAPI router → Tests --- ### 3. Testing Operations → /galaxy-testing **Invoke when user mentions:** - "test", "tests", "pytest", "run_tests.sh" - "write tests", "add test", "test this feature" - "test failure", "test error", "tests are failing" - "ApiTestCase", "integration test", "unit test", "functional test" - Files in `test/`, `lib/galaxy_test/` **Examples:** - "Run the integration tests" → `/galaxy-testing run` - "Write tests for this new API" → `/galaxy-testing write` - "How do I test this endpoint?" → `/galaxy-testing api` - "The tests are failing" → `/galaxy-testing run` (to diagnose) **Actions:** - `run` - Running tests (unit, integration, selenium) - `write` - Writing new tests (guides through patterns) - `api` - API testing patterns (ApiTestCase, fixtures) --- ### 4. Linting & Formatting → /galaxy-linting **Invoke when user mentions:** - "lint", "linting", "format", "formatting", "code style" - "ruff", "black", "isort", "flake8", "mypy", "darker", "autoflake", "pyupgrade" - "eslint", "prettier", "type check", "type error" - "tox -e lint", "tox -e format", "make format", "make pyupgrade" - "CI lint", "lint failure", "lint error", "formatting error" - "fix formatting", "auto-fix", "clean up code style" - "unused imports", "modernize Python", "remove imports" - "API schema lint", "config lint", "XSD", "codespell", "redocly" **Examples:** - "Run lint checks" → `/galaxy-linting check` - "Fix formatting issues" → `/galaxy-linting fix` - "How do I format Python code?" → `/galaxy-linting python` - "Type checking errors" → `/galaxy-linting mypy` - "Run all CI checks" → `/galaxy-linting full` - "Client-side linting" → `/galaxy-linting client` - "Remove unused imports" → `/galaxy-linting fix` - "Modernize Python syntax" → `/galaxy-linting fix` - "Lint API schema" → `/galaxy-linting` (for specialized targets) **Actions:** - `check` - Quick lint check (format + lint, fastest feedback) - `fix` - Auto-fix formatting (make diff-format, make format, make pyupgrade, autoflake) - `python` - Python linting details (ruff, black, isort, flake8, darker, pyupgrade) - `client` - Client-side linting (ESLint, Prettier, granular targets) - `mypy` - Type checking with mypy - `full` - Complete lint suite (all CI checks) - No argument - For specialized targets (API schema, XSD, config files) --- ### 5. Codebase Architecture Questions → galaxy-explorer Agent **Use Task tool with `subagent_type="galaxy-explorer"` when user asks:** - "Where is X implemented?" - "How does Y work?" - "What's the architecture of Z?" - "Find the component that handles..." - "Show me examples of..." - Broad exploration questions about code structure **Examples:** - "Where is authentication handled?" → Spawn galaxy-explorer - "How do workflows execute?" → Spawn galaxy-explorer - "What's the testing structure?" → Spawn galaxy-explorer **Why use galaxy-explorer:** - Knows Galaxy architecture deeply - Avoids reading large files completely - Can answer multi-file architectural questions efficiently - Understands Galaxy conventions and patterns **Do NOT use galaxy-explorer for:** - Specific needle queries (use Grep/Glob directly) - Reading known file paths (use Read directly) - Simple file searches (use Glob directly) --- ## Critical Galaxy Conventions ### Testing: ALWAYS use run_tests.sh **NEVER run pytest directly** - Galaxy's test suite requires special setup: ```bash # Correct ./run_tests.sh -integration test/integration/test_credentials.py # Wrong - will fail or miss fixtures pytest test/integration/test_credentials.py ``` **Why:** - Sets up Galaxy test database - Configures Galaxy-specific fixtures - Manages test isolation - Handles Galaxy configuration ### Large Files: NEVER Read Completely **These files will exhaust your token budget if read entirely:** - `client/src/api/schema/schema.ts` (46,529 lines) - Auto-generated - `lib/galaxy/model/__init__.py` (12,677 lines) - Core models - `lib/galaxy/tools/__init__.py` (4,857 lines) - Tool framework - `lib/galaxy/schema/schema.py` (4,184 lines) - API schemas **Instead:** - Use Grep with specific patterns - Read with offset/limit to get relevant sections - Use galaxy-explorer agent for architectural understanding ### Manager Pattern Business logic lives in manager classes: - Location: `lib/galaxy/managers/` - Pattern: `{Resource}Manager` (e.g., `WorkflowsManager`) - Purpose: Separate business logic from API layer **Flow:** API Router → Manager → Model ### FastAPI Structure Modern Galaxy API follows FastAPI patterns: - Routers: `lib/galaxy/webapps/galaxy/api/*.py` - Schemas: `lib/galaxy/schema/*.py` (Pydantic models) - Tests: `lib/galaxy_test/api/test_*.py` --- ## Quick Architecture Reference ### Backend (Python) ``` lib/galaxy/ ├── model/ # SQLAlchemy models │ └── migrations/ # Alembic migrations ├── managers/ # Business logic (Manager pattern) ├── schema/ # Pydantic API schemas ├── webapps/galaxy/api/ # FastAPI routers ├── tools/ # Tool execution engine └── workflow/ # Workflow engine ``` ### Frontend (Vue.js) ``` client/src/ ├── components/ # Vue components ├── stores/ # Pinia stores ├── composables/ # Composition functions └── api/ # API client + generated schemas ``` ### Tests ``` test/ ├── unit/ # Fast unit tests ├── integration/ # Integration tests └── integration_selenium/ # E2E browser tests lib/galaxy_test/ └── api/ # API endpoint tests ``` --- ## When to Use Each Approach ### Parallel Tool Calls When operations are independent: ``` Read: lib/galaxy/managers/workflows.py Read: client/src/stores/workflowStore.ts Read: test/unit/test_workflows.py ``` ### Targeted Searches For specific patterns in large files: ``` Grep: pattern="class Workflow\(" path="lib/galaxy/model/__init__.py" output_mode="content" -A=20 ``` ### Galaxy-Explorer Agent For understanding architecture or locating functionality across multiple files. ### Direct Tool Use For known file paths or simple operations. --- ## Proactive Skill Usage Summary **Before starting implementation:** 1. Detect user intent from their message 2. Match to skill routing guide above 3. Invoke appropriate skill BEFORE writing code 4. Follow skill's guided workflow **Key principle:** Skills prevent mistakes by enforcing Galaxy conventions and best practices. Use them proactively rather than reactively. --- ## Additional Notes - Galaxy uses Python 3.9+ with FastAPI, SQLAlchemy 2.0, Celery, Pydantic - Frontend: Vue.js 2.7 with TypeScript, Pinia, Vite - Main branch: `dev` (not `main`) - Code style: Black (120 chars), isort, Ruff, mypy with strict mode - Always use type hints in Python - Prefer TypeScript over JavaScript for new frontend code - Linting tools: ruff (lint + format), black, isort, flake8, mypy, autoflake, pyupgrade, ESLint, Prettier - Specialized linting: codespell, redocly (API schema), xmllint (XSD), config validators - Quick formatting tip: Use `make diff-format` during development for fast incremental formatting This context is optimized for the Galaxy codebase as of January 2026.
GitHub에서 보기