Skip to content
Back to skills

Ci Templates Liauw Media Codeassist

ASecurity

Use when setting up CI/CD pipelines. Teaches pipeline design principles and references platform-specific templates.

  • 666 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added February 8, 2026
devopspythongophpreactnodedjangodockertestinggitfullstack

Works with

  • cli

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill ci-templates-liauw-media-codeassist --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ci Templates Liauw Media Codeassist?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ci Templates Liauw Media Codeassist
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-ci-templates-liauw-media-codeassist/badge)](https://www.skillsdirectory.com/skills/majiayu000-ci-templates-liauw-media-codeassist)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ci-templates
description: "Use when setting up CI/CD pipelines. Teaches pipeline design principles and references platform-specific templates."
---

# CI/CD Templates

Principles for designing fast, reliable CI/CD pipelines. Platform-specific templates in `docs/ci-templates/`.

## When to Use

- Setting up a new CI/CD pipeline
- Optimizing slow pipelines
- Adding security scanning
- Migrating between CI platforms

## Core Principles

### 1. Fail Fast
Run quick checks first. Don't waste 10 minutes building if linting fails in 10 seconds.

```
Stage Order:
1. Lint/Format (seconds)
2. Type Check (seconds)
3. Unit Tests (minutes)
4. Integration Tests (minutes)
5. Build (minutes)
6. E2E Tests (minutes)
7. Deploy (varies)
```

### 2. Cache Dependencies
Never re-download what you already have.

| Framework | Cache Path |
|-----------|------------|
| PHP/Composer | `vendor/` |
| Node.js | `node_modules/` |
| Python | `.venv/` or `~/.cache/pip` |

### 3. Parallelize Independent Jobs
Jobs that don't depend on each other should run simultaneously.

```
✓ Good: lint + unit-tests + type-check (parallel)
✗ Bad: lint → unit-tests → type-check (sequential)
```

### 4. Use Artifacts for Handoffs
Don't rebuild between stages. Pass build artifacts.

### 5. Default to Public Images
Use Docker Hub, GitHub Container Registry, or official images by default. Custom registries are an optimization, not a requirement.

## Platform Support

| Platform | Template Location | Config File |
|----------|-------------------|-------------|
| GitLab CI | `docs/ci-templates/gitlab/` | `.gitlab-ci.yml` |
| GitHub Actions | `docs/ci-templates/github/` | `.github/workflows/*.yml` |

## Image Strategy

### Option 1: Public Images (Recommended Start)

No setup required. Works everywhere.

| Framework | Image | Notes |
|-----------|-------|-------|
| PHP | `php:8.3-cli` | Add extensions in `before_script` |
| Python | `python:3.12` | Add deps in `before_script` |
| Node | `node:20` | Works out of the box |
| Playwright | `mcr.microsoft.com/playwright:latest` | All browsers included |
| Security | `aquasec/trivy:latest` | Multi-language scanner |

### Option 2: Custom Registry (Optimization)

For faster builds, pre-bake dependencies into custom images.

Configure in `.claude/registry.json`:
```json
{
  "registry": "your-registry.example.com/images",
  "images": {
    "php": { "testing": "php:8.3-testing" },
    "node": { "base": "node:20-base" }
  }
}
```

See `docs/registry-config.md` for building custom images.

## Security Scanning

Always include security scanning. Use `allow_failure: true` initially to avoid blocking deploys while you fix issues.

| Scanner | What It Checks | Image |
|---------|----------------|-------|
| `composer audit` | PHP dependencies | `php:*` |
| `npm audit` | Node dependencies | `node:*` |
| `pip-audit` | Python dependencies | `python:*` |
| Trivy | Everything + containers | `aquasec/trivy` |
| Gitleaks | Secrets in code | `zricethezav/gitleaks` |

## Quick Start

### GitLab CI

```yaml
# .gitlab-ci.yml - minimal working example
stages: [test]

test:
  image: node:20
  script:
    - npm ci
    - npm test
  cache:
    paths: [node_modules/]
```

### GitHub Actions

```yaml
# .github/workflows/test.yml - minimal working example
name: Test
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '20' }
      - run: npm ci
      - run: npm test
```

## Template Reference

Full templates for common stacks:

| Stack | GitLab | GitHub |
|-------|--------|--------|
| Laravel/PHP | `docs/ci-templates/gitlab/laravel.yml` | `docs/ci-templates/github/laravel.yml` |
| Django/Python | `docs/ci-templates/gitlab/django.yml` | `docs/ci-templates/github/django.yml` |
| React/Node | `docs/ci-templates/gitlab/react.yml` | `docs/ci-templates/github/react.yml` |
| Full-Stack | `docs/ci-templates/gitlab/fullstack.yml` | `docs/ci-templates/github/fullstack.yml` |

## Checklist

When setting up a pipeline:

- [ ] Stages ordered by speed (fast first)
- [ ] Dependencies cached
- [ ] Independent jobs parallelized
- [ ] Artifacts passed between stages
- [ ] Security scanning included
- [ ] Works with public images (custom registry optional)

## Common Mistakes

1. **No caching** → Slow builds, wasted bandwidth
2. **Sequential everything** → 20 min pipeline that could be 5 min
3. **Hardcoded registry** → Breaks for contributors
4. **No security scanning** → Vulnerabilities ship to prod
5. **E2E tests blocking** → Flaky tests block all deploys

## Integration

These templates work with:
- `/laravel`, `/python`, `/react` commands
- `/architect security` for security scanning
- `system-architect` skill for infrastructure audits

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…