Marketplace

TBC Kicker - GitLab CI/CD Generator

This skill should be used when the user asks to "generate gitlab-ci.yml", "create GitLab CI pipeline", "configure GitLab CI/CD", "use To-Be-Continuous templates", "setup TBC templates", "create CI/CD for Python/Node/Go/Java project", "configure Docker build in GitLab", "setup Kubernetes deployment in GitLab", "add SonarQube to GitLab CI", "configure Terraform with GitLab", or mentions "TBC", "To-Be-Continuous", "Kicker", or needs help selecting CI/CD templates for their project.

$ Instalar

git clone https://github.com/rafaelcalleja/claude-market-place /tmp/claude-market-place && cp -r /tmp/claude-market-place/plugins/gitlab-tbc/skills/tbc-kicker ~/.claude/skills/claude-market-place

// tip: Run this command in your terminal to install the skill


name: TBC Kicker - GitLab CI/CD Generator description: This skill should be used when the user asks to "generate gitlab-ci.yml", "create GitLab CI pipeline", "configure GitLab CI/CD", "use To-Be-Continuous templates", "setup TBC templates", "create CI/CD for Python/Node/Go/Java project", "configure Docker build in GitLab", "setup Kubernetes deployment in GitLab", "add SonarQube to GitLab CI", "configure Terraform with GitLab", or mentions "TBC", "To-Be-Continuous", "Kicker", or needs help selecting CI/CD templates for their project. version: 1.1.0

TBC Kicker - GitLab CI/CD Configuration Wizard

This skill guides users through generating .gitlab-ci.yml files using the To-Be-Continuous (TBC) framework, replicating the exact workflow of the Kicker web wizard.

Overview

TBC Kicker is an interactive 8-step wizard that generates GitLab CI/CD configurations by combining 50 modular templates across 8 categories:

CategoryCountSelectionDescription
Build15SingleProgramming language/framework
Code Analysis7MultipleSecurity, linting, SAST
Packaging3SingleContainer/package builds
Infrastructure1SingleTerraform IaC
Deployment11SingleCloud/K8s deployment
Acceptance10MultipleE2E/API testing
Other3MultipleMisc utilities

Wizard Workflow

Step 0: Configure Global Options

Before template selection, configure these options:

Configuration Mode

  • Basic: Show only essential variables
  • Advanced: Show all configuration variables including advanced ones

Include Mode

ModeSyntaxUse Case
component$CI_SERVER_FQDN/path/template@versionGitLab 16.0+ (recommended)
projectproject: "path" + ref + fileSelf-hosted GitLab
remotehttps://host/path/-/raw/version/fileExternal GitLab

Version Mode

ModeExampleUpdatesStability
major@7Auto majorLeast stable
minor@7.5Auto patchRecommended
full@7.5.2NoneMost stable

Additional Options

  • With stages: Include custom stages section
  • GitLab Host: Custom host for remote mode

Step 1: Build (Language)

Select ONE build template or "none":

TemplatePrefixDescription
AngularNG_Angular CLI projects
BashBASH_Shell scripts with ShellCheck/Bats
DBTDBT_Data Build Tool
GitLab PackageGLPKG_Generic package publishing
GoGO_Golang applications
GradleGRADLE_Java/Kotlin with Gradle
GNU MakeMAKE_Makefile-based builds
MavenMAVEN_Java with Maven
MkDocsMKD_Documentation sites
Node.jsNODE_npm/yarn/pnpm projects
PHPPHP_PHP with Composer
pre-commitPRE_COMMIT_Pre-commit hooks
PythonPYTHON_Python with pip/poetry
Scala/SBTSBT_Scala applications
SphinxSPHINX_Sphinx documentation

Step 2: Code Analysis

Select MULTIPLE analysis templates:

TemplatePrefixDescription
DefectDojoDEFECTDOJO_Security report aggregation
Dependency TrackDEPTRACK_SBOM & vulnerability tracking
GitleaksGITLEAKS_Secret detection
MobSFMOBSF_Mobile security
SonarQubeSONAR_Code quality & security
SpectralSPECTRAL_OpenAPI/AsyncAPI linting
SQLFluffSQLFLUFF_SQL linting

Step 3: Packaging

Select ONE packaging template or "none":

TemplatePrefixDescription
Cloud Native BuildpacksCNB_Paketo buildpacks
DockerDOCKER_Dockerfile builds (kaniko/buildah/dind)
Source-to-ImageS2I_OpenShift S2I

Step 4: Infrastructure

Select ONE infrastructure template or "none":

TemplatePrefixDescription
TerraformTF_Infrastructure as Code

Step 5: Deployment

Select ONE deployment template or "none":

TemplatePrefixDescription
AnsibleANSIBLE_Configuration management
AWSAWS_Amazon Web Services
AzureAZURE_Microsoft Azure
Cloud FoundryCF_Cloud Foundry PaaS
Docker ComposeDCMP_Docker Compose/Stack
Google CloudGCLOUD_Google Cloud Platform
HelmHELM_Kubernetes Helm charts
HelmfileHELMFILE_Helmfile deployments
KubernetesK8S_kubectl deployments
OpenShiftOS_OpenShift deployments
S3S3_S3-compatible storage

Step 6: Acceptance Tests

Select MULTIPLE acceptance test templates:

TemplatePrefixDescription
BrunoBRUNO_API testing
CypressCYPRESS_E2E web testing
HurlHURL_HTTP testing
k6K6_Load testing
LighthouseLHCI_Performance testing
PlaywrightPLAYWRIGHT_E2E testing
PostmanPOSTMAN_API testing
PuppeteerPUPPETEER_Browser automation
Robot FrameworkROBOT_Test automation
TestSSLTESTSSL_TLS/SSL testing

Step 7: Other Templates

Select MULTIPLE utility templates:

TemplatePrefixDescription
GitLab ButlerBUTLER_Project cleanup
RenovateRENOVATE_Dependency updates
Semantic ReleaseSEMREL_Version management

Step 8: Generate Configuration

Generate the .gitlab-ci.yml with selected templates.

Template Configuration

Variables

Each template has variables with these properties:

PropertyDescription
nameVariable name (e.g., PYTHON_IMAGE)
defaultDefault value
typetext, url, boolean, enum, number
mandatoryRequired to use template
secretStore in CI/CD settings, not in file
advancedOnly show in advanced mode

Features

Templates have toggleable features:

# Feature enabled by default - disable with:
inputs:
  lint-disabled: true

# Feature disabled by default - enable with:
inputs:
  publish-enabled: true

Variants

Templates may have variants for additional functionality:

VariantAvailable InPurpose
VaultMost templatesHashiCorp Vault secrets
OIDCAWS, Azure, GCPOpenID Connect auth
Google CloudAnsible, Python, Helm, K8s, TerraformGCP authentication
AWSPython, TerraformAWS authentication
GitLab PagesMkDocs, Sphinx, DBTPublish to GitLab Pages
JibMavenBuild Docker images with Jib

YAML Output Format

Component Mode (Recommended)

include:
  # Python template
  - component: $CI_SERVER_FQDN/to-be-continuous/python/python@7
    inputs:
      image: "python:3.12-slim"
      build-system: "poetry"
      pytest-enabled: true
      bandit-enabled: true

  # Python template (Vault variant)
  - component: $CI_SERVER_FQDN/to-be-continuous/python/python-vault@7
    inputs:
      vault-base-url: "https://vault.example.com"

# secret variables
# (define the variables below in your GitLab group/project variables)
# VAULT_ROLE_ID: The AppRole RoleID
# VAULT_SECRET_ID: The AppRole SecretID

Project Mode

include:
  # Python template
  - project: "to-be-continuous/python"
    ref: "7.5"
    file: "templates/gitlab-ci-python.yml"

# secret variables
# SONAR_TOKEN: SonarQube authentication token

variables:
  PYTHON_IMAGE: "python:3.12-slim"
  PYTHON_BUILD_SYSTEM: "poetry"
  PYTEST_ENABLED: "true"

Remote Mode

include:
  # Python template
  - remote: "https://gitlab.com/to-be-continuous/python/-/raw/7.5/templates/gitlab-ci-python.yml"

variables:
  PYTHON_IMAGE: "python:3.12-slim"

Input Name Transformation

For component mode, transform variable names:

  1. Strip prefix: PYTHON_IMAGEIMAGE
  2. Lowercase: IMAGEimage
  3. Hyphens for underscores: BUILD_SYSTEMbuild-system

Examples:

  • PYTHON_IMAGEimage
  • PYTHON_BUILD_SYSTEMbuild-system
  • PYTEST_ENABLEDpytest-enabled
  • GO_CI_LINT_DISABLEDci-lint-disabled

Stages (Optional)

stages:
  - build
  - test
  - package-build
  - package-test
  - infra
  - deploy
  - acceptance
  - publish
  - infra-prod
  - production

Environment Configuration

Deployment templates support 4 environments:

EnvironmentVariable PrefixBranchPurpose
review{PREFIX}_REVIEW_FeatureDynamic review apps
integration{PREFIX}_INTEG_developCI environment
staging{PREFIX}_STAGING_mainPre-production
production{PREFIX}_PROD_mainProduction

Presets

Pre-configured variable sets for common services:

PresetVariables Set
SonarCloudSONAR_HOST_URL: https://sonarcloud.io
OpenShift SandboxOS_URL, K8S_URL for RedHat sandbox

Additional Resources

Reference Files

For detailed template configurations:

  • references/build-templates.md - All 15 build templates with full variables
  • references/deployment-templates.md - 12 templates (1 infrastructure + 11 hosting) with variants
  • references/analysis-templates.md - 23 templates (7 analysis + 3 packaging + 10 acceptance + 3 misc/publish)
  • references/presets.md - Pre-configured settings for SonarCloud, OpenShift Sandbox

Example Files

Working configurations in examples/:

  • python-docker-k8s.yml - Python + Docker + Helm
  • node-sonar-docker.yml - Node.js + SonarQube + Docker
  • terraform-aws.yml - Terraform + AWS with OIDC
  • java-maven-cf.yml - Maven + Cloud Foundry

Official Resources

Workflow Guidelines

For New Projects

  1. Ask about project type, language, and deployment target
  2. Configure global options (recommend component mode, minor version)
  3. Select templates for each category
  4. Read schemas/{template}.json to get valid inputs, components, and versions
  5. Configure variables (focus on mandatory and image versions)
  6. Enable relevant features and variants
  7. Generate the configuration

For Existing Projects

  1. Review current .gitlab-ci.yml
  2. Identify opportunities to use TBC templates
  3. Read schemas/{template}.json to get valid inputs, components, and versions
  4. Suggest equivalent TBC templates
  5. Provide migration guidance

Best Practices

  • Use component mode for GitLab 16.0+
  • Use minor version for balance of updates and stability
  • Enable only needed features
  • Store secrets in CI/CD variables
  • Document non-default configurations
  • Use variants for cloud authentication (Vault, OIDC)