name: ‘step-01-preflight’ description: ‘Verify prerequisites and detect CI platform’ nextStepFile: ‘{skill-root}/steps-c/step-02-generate-pipeline.md’
Verify CI prerequisites and determine target CI platform.
{communication_language}CRITICAL: Follow this sequence exactly. Do not skip, reorder, or improvise.
.git/ existsIf missing: HALT with “Git repository required for CI/CD setup.”
Determine the project’s test stack type (test_stack_type) using the following algorithm:
test_stack_type is explicitly set in config (not "auto"), use that value.playwright.config.*, cypress.config.*, vite.config.*, next.config.*, src/components/, src/pages/, src/app/pyproject.toml, pom.xml/build.gradle, go.mod, *.csproj/*.sln, Gemfile, Cargo.toml, jest.config.*, vitest.config.*, src/routes/, src/controllers/, src/api/, Dockerfile, serverless.ymlfullstackfrontendbackendfullstack and note assumptionRecord detected test_stack_type in step output.
playwright.config.* or cypress.config.* existsjest.config.* or vitest.config.* or test scripts in package.jsonpyproject.toml with [tool.pytest] or pytest.ini or setup.cfg with pytest configpom.xml with surefire/failsafe plugins or build.gradle with test task*_test.go files present (Go convention — no config file needed)*.csproj with xUnit/NUnit/MSTest referencesGemfile with rspec or .rspec config filetest_framework is "auto", detect from config files and project manifests foundIf missing: HALT with “Run framework workflow first.”
npm test or npm run test:e2epytest or python -m pytestmvn test or gradle testgo test ./...dotnet testbundle exec rspecci_platform is explicitly set in config (not "auto"), use that value..github/workflows/*.yml → github-actions.gitlab-ci.yml → gitlab-ciJenkinsfile → jenkinsazure-pipelines.yml → azure-devops.harness/*.yaml → harness.circleci/config.yml → circle-cigithub-actions, gitlab.com → gitlab-ci)github-actionsRecord detected ci_platform in step output.
.nvmrc if present (default to Node 24+ LTS if missing); read package.json for dependency caching strategy.python-version or pyproject.toml for Python version; note pip/poetry/pipenv for cachingpom.xml/build.gradle for Java version; note Maven/Gradle for cachinggo.mod for Go version; note Go module cache path*.csproj/global.json for .NET SDK version; note NuGet cache.ruby-version or Gemfile for Ruby version; note Bundler cacheSave this step’s accumulated work to {outputFile}.
{outputFile} does not exist (first save), create it with YAML frontmatter: ---
stepsCompleted: ['step-01-preflight']
lastStep: 'step-01-preflight'
lastSaved: '{date}'
---
Then write this step’s output below the frontmatter.
{outputFile} already exists, update:
'step-01-preflight' to stepsCompleted array (only if not already present)lastStep: 'step-01-preflight'lastSaved: '{date}'Load next step: {nextStepFile}