Platform Knowledge Skill
Overview
This skill provides comprehensive knowledge of the infrastructure platforms: GitHub Actions, Railway, Supabase, and Postgres. It covers architecture, configuration, troubleshooting, and best practices for each platform.
Platform Overview
GitHub Actions
- Purpose: CI/CD automation
- Key Features: Workflow automation, testing, deployment
- Config Files:
.github/workflows/*.yml
- CLI:
gh
Railway
- Purpose: Application hosting and deployment
- Key Features: Auto-deployments, instant rollbacks, environment management
- Config Files:
railway.toml, nixpacks.toml, Procfile
- CLI:
railway
Supabase
- Purpose: Backend-as-a-Service (Postgres, Auth, Storage, Realtime)
- Key Features: Managed Postgres, authentication, file storage, realtime subscriptions
- Config Files:
supabase/config.toml, migrations
- Access: MCP tools, Dashboard, CLI
Postgres
- Purpose: Relational database
- Key Features: ACID compliance, extensions, full-text search, JSON support
- Config: Connection strings, postgresql.conf
- Access: SQL queries via MCP or psql
Platform Interaction Map
┌──────────────┐ ┌──────────────┐
│ GitHub │ │ Railway │
│ Actions │────▶│ (App) │
│ (CI/CD) │ │ │
└──────────────┘ └──────┬───────┘
│
▼
┌──────────────┐
│ Supabase │
│ (Backend) │
│ │
│ ┌──────────┐ │
│ │ Postgres │ │
│ └──────────┘ │
└──────────────┘
Quick Reference
Tool Access by Platform
| Platform |
MCP Tools |
CLI |
Logs |
| GitHub Actions |
No |
gh |
gh run view --log |
| Railway |
No |
railway |
railway logs |
| Supabase |
Yes |
supabase |
MCP get_logs |
| Postgres |
Yes (via Supabase) |
psql |
MCP get_logs |
Common Operations
| Task |
GitHub |
Railway |
Supabase |
| Deploy |
Push/workflow |
Git push / railway up |
Dashboard / CLI |
| Logs |
gh run view --log |
railway logs |
MCP get_logs |
| Status |
gh run list |
railway status |
MCP get_project |
| Rollback |
Re-run workflow |
Dashboard |
Run migration down |
| Secrets |
Repository settings |
Environment variables |
Project settings |
Troubleshooting Decision Tree
Issue Reported
│
▼
┌─────────────────────────────────────┐
│ Where does the issue manifest? │
└─────────────────────────────────────┘
│
├─► Build/Deploy fails ──► GitHub Actions / Railway
│
├─► API errors ──► Supabase API / Edge Functions
│
├─► Auth issues ──► Supabase Auth
│
├─► Database errors ──► Postgres
│
├─► App crashes ──► Railway / Edge Functions
│
└─► Performance ──► All platforms (profile each)
Platform-Specific Guides
Detailed guides for each platform:
- GitHub Actions - CI/CD workflows, secrets, debugging
- Railway - Deployment, configuration, troubleshooting
- Supabase - Auth, API, Realtime, Storage
- Postgres - Queries, performance, administration
Cross-Platform Issues
Deployment Chain Failure
Symptom: Deploy succeeds but app broken
Check all stages:
- GitHub Actions - Build/test passed?
- Railway - Deploy successful?
- Supabase - Migrations applied?
- Environment - Variables set?
Environment Variable Issues
Common causes:
- Set in wrong environment
- Typo in variable name
- Not propagated after change
Verify across platforms:
# GitHub Actions - Check secrets
# (Can't view, only verify existence)
# Railway
railway variables
# Supabase - Check project settings
# Dashboard or MCP
Connection Issues Between Services
Railway → Supabase:
- Check Supabase URL format
- Verify API key (anon vs service_role)
- Check connection pooling settings
- Verify IP restrictions
GitHub Actions → Services:
- Check secrets are accessible
- Verify network egress allowed
- Check for rate limiting
Performance Troubleshooting Matrix
| Symptom |
GitHub Actions |
Railway |
Supabase |
Postgres |
| Slow |
Cache missing, big deps |
Cold start, resources |
Edge function |
Query optimization |
| Timeout |
Step timeout |
Health check |
API timeout |
Statement timeout |
| Memory |
OOM on build |
Container limit |
Function limit |
work_mem |
| CPU |
Concurrent jobs |
Container limit |
N/A |
Query complexity |
Configuration Files Reference
GitHub Actions
# .github/workflows/deploy.yml
name: Deploy
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# ... more steps
Railway
# railway.toml
[build]
builder = "nixpacks"
buildCommand = "npm run build"
[deploy]
startCommand = "npm start"
healthcheckPath = "/health"
Supabase
# supabase/config.toml
[api]
port = 54321
schemas = ["public", "graphql_public"]
[db]
port = 54322
Postgres
-- Key settings
SHOW max_connections;
SHOW statement_timeout;
SHOW work_mem;
1---2name: platform-knowledge3description: Deep knowledge of GitHub Actions, Railway, Supabase, and Postgres platforms. Use when troubleshooting, configuring, or optimizing any of these platforms.4---56# Platform Knowledge Skill78## Overview910This skill provides comprehensive knowledge of the infrastructure platforms: GitHub Actions, Railway, Supabase, and Postgres. It covers architecture, configuration, troubleshooting, and best practices for each platform.1112## Platform Overview1314### GitHub Actions15- **Purpose**: CI/CD automation16- **Key Features**: Workflow automation, testing, deployment17- **Config Files**: `.github/workflows/*.yml`18- **CLI**: `gh`1920### Railway21- **Purpose**: Application hosting and deployment22- **Key Features**: Auto-deployments, instant rollbacks, environment management23- **Config Files**: `railway.toml`, `nixpacks.toml`, `Procfile`24- **CLI**: `railway`2526### Supabase27- **Purpose**: Backend-as-a-Service (Postgres, Auth, Storage, Realtime)28- **Key Features**: Managed Postgres, authentication, file storage, realtime subscriptions29- **Config Files**: `supabase/config.toml`, migrations30- **Access**: MCP tools, Dashboard, CLI3132### Postgres33- **Purpose**: Relational database34- **Key Features**: ACID compliance, extensions, full-text search, JSON support35- **Config**: Connection strings, postgresql.conf36- **Access**: SQL queries via MCP or psql3738## Platform Interaction Map3940```41┌──────────────┐ ┌──────────────┐42│ GitHub │ │ Railway │43│ Actions │────▶│ (App) │44│ (CI/CD) │ │ │45└──────────────┘ └──────┬───────┘46 │47 ▼48 ┌──────────────┐49 │ Supabase │50 │ (Backend) │51 │ │52 │ ┌──────────┐ │53 │ │ Postgres │ │54 │ └──────────┘ │55 └──────────────┘56```5758## Quick Reference5960### Tool Access by Platform6162| Platform | MCP Tools | CLI | Logs |63|----------|-----------|-----|------|64| GitHub Actions | No | `gh` | `gh run view --log` |65| Railway | No | `railway` | `railway logs` |66| Supabase | Yes | `supabase` | MCP `get_logs` |67| Postgres | Yes (via Supabase) | `psql` | MCP `get_logs` |6869### Common Operations7071| Task | GitHub | Railway | Supabase |72|------|--------|---------|----------|73| Deploy | Push/workflow | Git push / `railway up` | Dashboard / CLI |74| Logs | `gh run view --log` | `railway logs` | MCP `get_logs` |75| Status | `gh run list` | `railway status` | MCP `get_project` |76| Rollback | Re-run workflow | Dashboard | Run migration down |77| Secrets | Repository settings | Environment variables | Project settings |7879## Troubleshooting Decision Tree8081```82Issue Reported83 │84 ▼85┌─────────────────────────────────────┐86│ Where does the issue manifest? │87└─────────────────────────────────────┘88 │89 ├─► Build/Deploy fails ──► GitHub Actions / Railway90 │91 ├─► API errors ──► Supabase API / Edge Functions92 │93 ├─► Auth issues ──► Supabase Auth94 │95 ├─► Database errors ──► Postgres96 │97 ├─► App crashes ──► Railway / Edge Functions98 │99 └─► Performance ──► All platforms (profile each)100```101102## Platform-Specific Guides103104Detailed guides for each platform:105106- [GitHub Actions](github-actions.md) - CI/CD workflows, secrets, debugging107- [Railway](railway.md) - Deployment, configuration, troubleshooting108- [Supabase](supabase.md) - Auth, API, Realtime, Storage109- [Postgres](postgres.md) - Queries, performance, administration110111## Cross-Platform Issues112113### Deployment Chain Failure114115**Symptom**: Deploy succeeds but app broken116117**Check all stages**:1181. GitHub Actions - Build/test passed?1192. Railway - Deploy successful?1203. Supabase - Migrations applied?1214. Environment - Variables set?122123### Environment Variable Issues124125**Common causes**:126- Set in wrong environment127- Typo in variable name128- Not propagated after change129130**Verify across platforms**:131```bash132# GitHub Actions - Check secrets133# (Can't view, only verify existence)134135# Railway136railway variables137138# Supabase - Check project settings139# Dashboard or MCP140```141142### Connection Issues Between Services143144**Railway → Supabase**:145- Check Supabase URL format146- Verify API key (anon vs service_role)147- Check connection pooling settings148- Verify IP restrictions149150**GitHub Actions → Services**:151- Check secrets are accessible152- Verify network egress allowed153- Check for rate limiting154155## Performance Troubleshooting Matrix156157| Symptom | GitHub Actions | Railway | Supabase | Postgres |158|---------|---------------|---------|----------|----------|159| Slow | Cache missing, big deps | Cold start, resources | Edge function | Query optimization |160| Timeout | Step timeout | Health check | API timeout | Statement timeout |161| Memory | OOM on build | Container limit | Function limit | work_mem |162| CPU | Concurrent jobs | Container limit | N/A | Query complexity |163164## Configuration Files Reference165166### GitHub Actions167```yaml168# .github/workflows/deploy.yml169name: Deploy170on: [push]171jobs:172 build:173 runs-on: ubuntu-latest174 steps:175 - uses: actions/checkout@v4176 # ... more steps177```178179### Railway180```toml181# railway.toml182[build]183builder = "nixpacks"184buildCommand = "npm run build"185186[deploy]187startCommand = "npm start"188healthcheckPath = "/health"189```190191### Supabase192```toml193# supabase/config.toml194[api]195port = 54321196schemas = ["public", "graphql_public"]197198[db]199port = 54322200```201202### Postgres203```sql204-- Key settings205SHOW max_connections;206SHOW statement_timeout;207SHOW work_mem;208```