RuleStack

Configs

Stacks

Compare

Diff

RuleStack

Configs

Stacks

Compare

Diff

Read API

RuleStack

Configs

Stacks

Compare

Diff

Read API

Configs/Windsurf rules/danielvm-git/bigpowers

Windsurf rules

.windsurf/rules/deploy.md

Build → verify artifact → deploy → wait → smoke deployment pipeline. Platform-agnostic (MCP or CLI), with configurable timeout, retry with exponential backoff, and integrated health-check. The deploy half of CI/CD: run after build to push to production.

Windsurf rules

Quality

77/100

Scores the file, not the repository.

Length

894 words

18 headings · 8 code blocks

Repository

114

— · pushed 0 days ago

Last changed

3 days ago

First indexed 3 days ago.
danielvm-git/bigpowers/.windsurf/rules/deploy.mdRawGitHub
1---
2name: deploy
3model: sonnet
4description: "Build → verify artifact → deploy → wait → smoke deployment pipeline. Platform-agnostic (MCP or CLI), with configurable timeout, retry with exponential backoff, and integrated health-check. The deploy half of CI/CD: run after build to push to production."
5---
6 
7# Deploy
8 
9> **HARD GATE** — Do not deploy without running tests first. Run `test` or your CI suite before this skill.
10>
11> **HARD GATE** — Use this skill from a CI/CD pipeline or post-merge on `main`/`master`. Never deploy from a feature branch.
12>
13> **HARD GATE** — The deploy skill orchestrates deployment; the `smoke-test` skill validates post-deploy health. Chain them: `deploy → smoke-test`.
14 
15Orchestrate a full build-to-deployment pipeline: build the artifact, verify it exists and is non-empty, invoke a platform deploy tool (MCP or CLI), poll until the deploy completes or times out, then run a baseline smoke test against the live URL.
16 
17## Pipeline Stages
18 
19```
20build → verify artifact → deploy → wait/retry → smoke
21```
22 
23| Stage | Description | Failure mode |
24|-------|-------------|-------------|
25| Build | Execute the project's build command | Non-zero exit: report build error |
26| Verify | Check artifact exists and is non-empty | Missing/empty: report artifact path |
27| Deploy | Invoke platform deploy tool (MCP, Vercel CLI, rsync, etc.) | Non-zero exit: report deploy error |
28| Wait | Poll deploy status every 30s up to `DEPLOY_TIMEOUT` (default 5 min) | Timeout: report exceeded |
29| Smoke | `curl -sSf $DEPLOY_URL` as baseline health check | Non-200: report failure |
30 
31## Process
32 
33### 1. Detect build command
34 
35Read project manifest files in order to determine the build command:
36 
37| Manifest | Build command |
38|----------|--------------|
39| `package.json` | `npm run build` (or `scripts.build` value) |
40| `Cargo.toml` | `cargo build --release` |
41| `pyproject.toml` / `setup.py` | Depends on build backend (`poetry build`, `pip install -e .`, etc.) |
42| `Makefile` | `make build` or first target named `build` |
43| `AGENTS.md` / `CLAUDE.md` | Look for `build:` in project commands section |
44 
45If no manifest is found, prompt the user with: "No detected build command. Pass `--build 'npm run build'` or specify the command."
46 
47### 2. Build the artifact
48 
49```bash
50npm run build
51```
52 
53Or the detected command from step 1. If the build fails, exit non-zero and report the build output.
54 
55### 3. Verify the artifact
56 
57```bash
58ARTIFACT_DIR="${ARTIFACT_DIR:-dist}"
59if [ ! -d "$ARTIFACT_DIR" ] || [ -z "$(ls -A "$ARTIFACT_DIR" 2>/dev/null)" ]; then
60 echo "FAIL: build artifact not found at $ARTIFACT_DIR"
61 exit 1
62fi
63```
64 
65Configurable via `$ARTIFACT_DIR` environment variable (default: `dist/`).
66 
67### 4. Deploy to platform
68 
69Platform-agnostic — supports multiple deployment targets via environment variables:
70 
71| Platform | Env var | Example |
72|----------|---------|---------|
73| Vercel | `VERCEL_TOKEN`, `VERCEL_PROJECT_ID` | `vercel deploy --prod --token $VERCEL_TOKEN` |
74| Netlify | `NETLIFY_AUTH_TOKEN`, `NETLIFY_SITE_ID` | `netlify deploy --prod --auth $NETLIFY_AUTH_TOKEN --dir $ARTIFACT_DIR` |
75| Platform MCP | MCP tool call | `mcp deploy` via your platform MCP server |
76| rsync/SSH | `DEPLOY_SSH_USER`, `DEPLOY_SSH_HOST`, `DEPLOY_SSH_PATH` | `rsync -avz $ARTIFACT_DIR/ $DEPLOY_SSH_USER@$DEPLOY_SSH_HOST:$DEPLOY_SSH_PATH` |
77| Custom | `DEPLOY_COMMAND` | Run any deploy command string |
78 
79The deploy tool is selected by which environment variables are set. If none are configured:
80 
81```bash
82echo "No deploy target configured. Set one of: VERCEL_TOKEN, NETLIFY_AUTH_TOKEN, DEPLOY_SSH_USER+DEPLOY_SSH_HOST, DEPLOY_COMMAND, or MCP deploy tool."
83exit 1
84```
85 
86### 5. Wait and poll status
87 
88After invoking the deploy command, poll for completion:
89 
90See [REFERENCE.md](REFERENCE.md)
91 
92Use exponential backoff for retries on transient failures:
93 
94See [REFERENCE.md](REFERENCE.md)
95 
96### 6. Baseline smoke test
97 
98See [REFERENCE.md](REFERENCE.md)
99 
100For comprehensive health-checking, chain to the `smoke-test` skill:
101 
102```bash
103# After deploy success
104bash scripts/run-smoke.sh "$DEPLOY_URL"
105```
106 
107### 7. Three-independent-facts verification (e45s15)
108 
109Before declaring deploy success, verify **three independent facts** — build artifact, platform accept, live/registry reachability. See [REFERENCE.md](REFERENCE.md#three-independent-facts).
110 
111## Verify
112 
113→ verify: `command -v curl >/dev/null 2>&1 && test -f skills/smoke-test/SKILL.md`
114 
115---
116 
117# Deploy — Reference
118 
119## Configuration
120 
121| Variable | Default | Description |
122|----------|---------|-------------|
123| `ARTIFACT_DIR` | `dist` | Build output directory |
124| `DEPLOY_URL` | *(required)* | Live URL for smoke test |
125| `DEPLOY_TIMEOUT` | `300` | Max wait for deploy completion (seconds) |
126| `DEPLOY_POLL_INTERVAL` | `30` | Polling interval (seconds) |
127| `RETRY_MAX` | `3` | Max deploy retry attempts |
128| `BUILD_COMMAND` | *(auto-detect)* | Override build command |
129 
130 
131---
132 
133## Verification
134 
135→ verify: `test -f deploy/SKILL.md && grep -q 'name: deploy' deploy/SKILL.md && echo OK`
136→ verify: `grep -qi 'build\|artifact\|deploy\|smoke' deploy/SKILL.md && echo OK`
137→ verify: `grep -ci 'package.json\|Cargo.toml\|Makefile\|manifest' deploy/SKILL.md | awk '{if($1>=1) print "OK"; else print "FAIL"}'`
138→ verify: `grep -ci 'timeout\|poll\|status\|retry\|backoff' deploy/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
139→ verify: `grep -q 'curl.*DEPLOY_URL\|smoke\|health' deploy/SKILL.md && echo OK`
140 
141---
142 
143## Reference block 1
144 
145```bash
146DEPLOY_TIMEOUT="${DEPLOY_TIMEOUT:-300}" # seconds (default 5 minutes)
147DEPLOY_POLL_INTERVAL="${DEPLOY_POLL_INTERVAL:-30}" # seconds
148 
149start_time=$(date +%s)
150while true; do
151 elapsed=$(( $(date +%s) - start_time ))
152 if [ "$elapsed" -ge "$DEPLOY_TIMEOUT" ]; then
153 echo "FAIL: deploy status polling timed out after ${DEPLOY_TIMEOUT}s"
154 exit 1
155 fi
156
157 status=$(get_deploy_status) # platform-specific status check
158 if [ "$status" = "ready" ] || [ "$status" = "done" ]; then
159 echo "Deploy completed in ${elapsed}s"
160 break
161 fi
162
163 sleep "$DEPLOY_POLL_INTERVAL"
164done
165```
166 
167---
168 
169## Reference block 2
170 
171```bash
172RETRY_MAX="${RETRY_MAX:-3}"
173base_delay=2
174for attempt in $(seq 1 "$RETRY_MAX"); do
175 if deploy_command; then
176 break
177 fi
178 if [ "$attempt" -eq "$RETRY_MAX" ]; then
179 echo "FAIL: deploy failed after ${RETRY_MAX} attempts"
180 exit 1
181 fi
182 sleep $(( base_delay * 2 ** (attempt - 1) ))
183done
184```
185 
186---
187 
188## Reference block 3
189 
190```bash
191DEPLOY_URL="${DEPLOY_URL:?DEPLOY_URL must be set}"
192if curl -sSf "$DEPLOY_URL" > /dev/null 2>&1; then
193 echo "OK: $DEPLOY_URL responds with HTTP 200"
194else
195 echo "FAIL: $DEPLOY_URL is not responding with HTTP 200"
196 exit 1
197fi
198```
199 

Commands it names

  • npm run build
  • cargo build --release
  • poetry build
  • pip install -e .
  • make build

Sections

  • Deploy
  • Pipeline Stages
  • Process
  • 1. Detect build command
  • 2. Build the artifact
  • 3. Verify the artifact
  • 4. Deploy to platform
  • 5. Wait and poll status
  • 6. Baseline smoke test
  • After deploy success
  • 7. Three-independent-facts verification (e45s15)
  • Verify
  • Deploy — Reference
  • Configuration
  • Verification
  • Reference block 1
  • Reference block 2
  • Reference block 3

What it covers

setupbuildtestdeployment

Stack — with the evidence

node

(0.95)

shell

(0.80)

react

(0.70)

astro

(0.70)

express

(0.70)

vitest

(0.70)

typescript

(0.60)

javascript

(0.60)

python

(0.60)

github-actions

(0.60)

Format

Windsurf rules

Cursor's activation model with a different vocabulary — trigger modes instead of rule types — plus hard character caps, which is the one place a format here will silently drop instructions rather than fail loudly.

What the corpus says about it

Repository

Owner
danielvm-git
Language
—
License
—
Archived
no

All configs in this repo

Also in danielvm-git/bigpowers

Diff this repo’s formats

One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?

The other instruction files in this repository
RepositoryFormatStackCoversScoreChanged
danielvm-git/bigpowers.cursor/rules/align-grid.mdc · 114Cursor rulesnodeshell+8lint-formatdo-notagent-behaviour65/1003 days ago
danielvm-git/bigpowers.cursor/rules/assess-impact.mdc · 114Cursor rulesshellnode+8testtesting-strategydeployment66/1003 days ago
danielvm-git/bigpowers.cursor/rules/audit-code.mdc · 114Cursor rulesshellnode+8setuptestlint-formatstyle+466/1003 days ago
danielvm-git/bigpowers.cursor/rules/audit-plan.mdc · 114Cursor rulesnodeshell+8buildteststylegit74/1003 days ago
danielvm-git/bigpowers.cursor/rules/build-epic.mdc · 114Cursor rulesshellnode+8buildgit58/1003 days ago
danielvm-git/bigpowers.cursor/rules/change-request.mdc · 114Cursor rulesshellnode+8no sections48/1003 days ago
danielvm-git/bigpowers.cursor/rules/commit-message.mdc · 114Cursor rulesshellnode+8lint-formatstyletypesgit+382/1003 days ago
danielvm-git/bigpowers.cursor/rules/compose-workflow.mdc · 114Cursor rulesshellnode+8styledo-notagent-behaviour65/1003 days ago
danielvm-git/bigpowers.cursor/rules/context7-mcp.mdc · 114Cursor rulesshellnode+8style54/1003 days ago
danielvm-git/bigpowers.cursor/rules/craft-skill.mdc · 114Cursor rulesshellnode+8stylearchgitdo-not69/1003 days ago
danielvm-git/bigpowers.cursor/rules/deepen-architecture.mdc · 114Cursor rulesshellnode+8testtesting-strategydo-not57/1003 days ago
danielvm-git/bigpowers.cursor/rules/define-language.mdc · 114Cursor rulesshellnode+8lint-formatdo-not65/1003 days ago
danielvm-git/bigpowers.cursor/rules/define-success.mdc · 114Cursor rulesshellnode+8no sections4/1003 days ago
danielvm-git/bigpowers.cursor/rules/delegate-task.mdc · 114Cursor rulesshellnode+8git62/1003 days ago
danielvm-git/bigpowers.cursor/rules/deploy.mdc · 114Cursor rulesnodeshell+8setupbuildtestdeployment77/1003 days ago
danielvm-git/bigpowers.cursor/rules/design-interface.mdc · 114Cursor rulesshellnode+8styleagent-behaviour58/1003 days ago
danielvm-git/bigpowers.cursor/rules/develop-tdd.mdc · 114Cursor rulesshellnode+8teststylearchtesting-strategy+585/1003 days ago
danielvm-git/bigpowers.cursor/rules/diagnose-root.mdc · 114Cursor rulesshellnode+8no sections39/1003 days ago
danielvm-git/bigpowers.cursor/rules/diagnose-stall.mdc · 114Cursor rulesshellnode+8no sections44/1003 days ago
danielvm-git/bigpowers.cursor/rules/dispatch-agents.mdc · 114Cursor rulesshellnode+8git54/1003 days ago
Diff against .cursor/rules/align-grid.mdc Diff against .cursor/rules/assess-impact.mdc Diff against .cursor/rules/audit-code.mdc Diff against .cursor/rules/audit-plan.mdc Diff against .cursor/rules/build-epic.mdc Diff against .cursor/rules/change-request.mdc Diff against .cursor/rules/commit-message.mdc Diff against .cursor/rules/compose-workflow.mdc Diff against .cursor/rules/context7-mcp.mdc Diff against .cursor/rules/craft-skill.mdc Diff against .cursor/rules/deepen-architecture.mdc Diff against .cursor/rules/define-language.mdc Diff against .cursor/rules/define-success.mdc Diff against .cursor/rules/delegate-task.mdc Diff against .cursor/rules/deploy.mdc Diff against .cursor/rules/design-interface.mdc Diff against .cursor/rules/develop-tdd.mdc Diff against .cursor/rules/diagnose-root.mdc Diff against .cursor/rules/diagnose-stall.mdc Diff against .cursor/rules/dispatch-agents.mdc

Similar configs

Same format, overlapping stack, ranked by quality.

Same format, overlapping stack, ranked by quality
RepositoryFormatStackCoversScoreChanged
danielvm-git/bigpowers.windsurf/rules/organize-workspace.md · 114Windsurf rulesshellnode+8buildstylegitdeployment+289/1003 days ago
danielvm-git/bigpowers.windsurf/rules/guard-git.md · 114Windsurf rulesshellnode+8stylearchgitsecurity+289/1003 days ago
danielvm-git/bigpowers.windsurf/rules/quick-fix.md · 114Windsurf rulesshellnode+8teststylegitdeployment+185/1003 days ago
danielvm-git/bigpowers.windsurf/rules/develop-tdd.md · 114Windsurf rulesshellnode+8teststylearchtesting-strategy+585/1003 days ago
danielvm-git/bigpowers.windsurf/rules/session-state.md · 114Windsurf rulesshellnode+8lint-formatstyleagent-behaviour82/1003 days ago
danielvm-git/bigpowers.windsurf/rules/commit-message.md · 114Windsurf rulesshellnode+8lint-formatstyletypesgit+382/1003 days ago
danielvm-git/bigpowers.windsurf/rules/extract-design.md · 114Windsurf rulesnodeshell+8lint-formatstyledependenciesui82/1003 days ago
danielvm-git/bigpowers.windsurf/rules/setup-environment.md · 114Windsurf rulesnodeshell+8setupstylesecuritydo-not+181/1003 days ago
RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack

RuleStack

Built by

Kynth Studio

Directory

Configs
Stacks
Compare formats
Diff two configs
Best AGENTS.md examples

Formats

AGENTS.md
CLAUDE.md
Cursor rules
Copilot instructions

Reference

Read API
Corpus health
Privacy Policy
Terms

RuleStack