# Lint

> Run all linters and formatters -- dotnet format, ESLint, helm lint, and terraform validate. Use to verify formatting before a PR. Note that hooks auto-fix on save/commit; this skill is for explicit verification across the full codebase. For infrastructure-only changes, use /infra-lint instead.

- **Type:** Skill
- **Install:** `agentstack add skill-makigjuro-cloudstack-ai-plugins-lint`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [makigjuro](https://agentstack.voostack.com/s/makigjuro)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [makigjuro](https://github.com/makigjuro)
- **Source:** https://github.com/makigjuro/cloudstack-ai-plugins/tree/main/plugins/dev-workflow/skills/lint
- **Website:** https://github.com/makigjuro/cloudstack-ai-plugins#quick-start

## Install

```sh
agentstack add skill-makigjuro-cloudstack-ai-plugins-lint
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Lint

Run all project linters and report violations. Optionally fix auto-fixable issues.

## Configuration

Read `cloudstack.json` from the project root at the start of execution. Extract relevant fields:
- `SOLUTION` = `backend.solutionPath` (default: find `*.sln`)
- `FRONTEND_PATH` = `frontend.path` (default: `web`)
- `CHARTS_PATH` = `infrastructure.chartsPath` (default: `deploy/charts`)
- `TF_PATH` = `infrastructure.terraformPath` (default: `infra/terraform/modules`)

If `cloudstack.json` does not exist, auto-detect by scanning the project structure.

## Arguments

- `--fix` or `fix` -- Apply auto-fixes (default: report only)
- `backend` -- Only lint C# code
- `frontend` -- Only lint frontend code
- `helm` -- Only lint Helm charts
- `terraform` -- Only lint Terraform/Terragrunt code

If no argument is given, lint everything in report-only mode.

## Backend (.NET)

**Check formatting violations (report only):**
```bash
dotnet format {SOLUTION} --verify-no-changes --verbosity normal
```

**Fix formatting violations:**
```bash
dotnet format {SOLUTION} --verbosity normal
```

## Frontend (React/TypeScript)

**Check lint violations (report only):**
```bash
cd {FRONTEND_PATH} && npm run lint
```

**Fix auto-fixable violations:**
```bash
cd {FRONTEND_PATH} && npm run lint:fix
```

**Check TypeScript types:**
```bash
cd {FRONTEND_PATH} && npm run type-check
```

## Helm Charts

**Lint all charts in {CHARTS_PATH}/:**
```bash
# Discover and lint all charts
for chart in $(ls {CHARTS_PATH}/); do
  helm lint {CHARTS_PATH}/$chart
done
```

**Template render check (catches template errors without deploying):**
```bash
for chart in $(ls {CHARTS_PATH}/); do
  helm template test {CHARTS_PATH}/$chart > /dev/null
done
```

## Terraform / Terragrunt

Determine the Terraform root directory from `{TF_PATH}` (e.g., if `TF_PATH` is `infra/terraform/modules`, the root for format checks is `infra`).

**Validate Terraform modules:**
```bash
# Find all Terraform module directories and validate each
for dir in $(find {TF_ROOT} -name "*.tf" -exec dirname {} \; | sort -u); do
  echo "=== Validating $dir ==="
  terraform -chdir="$dir" init -backend=false -input=false 2>/dev/null
  terraform -chdir="$dir" validate
done
```

**Format check (report only):**
```bash
terraform fmt -check -recursive {TF_ROOT}
```

**Format fix:**
```bash
terraform fmt -recursive {TF_ROOT}
```

**Terragrunt validate (if terragrunt.hcl files exist):**
```bash
find {TF_ROOT} -name "terragrunt.hcl" -execdir terragrunt validate \;
```

## After Running

- Report the total violation count for each tool separately.
- For failures, show file path, line number (where available), and rule name.
- If running with `--fix`, report how many issues were auto-fixed and how many remain.
- If TypeScript type errors exist, list them separately from lint errors.
- Summarize with a pass/fail status per category:
  - .NET Format: PASS/FAIL
  - ESLint: PASS/FAIL
  - TypeScript: PASS/FAIL
  - Helm Lint: PASS/FAIL
  - Terraform Validate: PASS/FAIL
  - Terraform Format: PASS/FAIL

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [makigjuro](https://github.com/makigjuro)
- **Source:** [makigjuro/cloudstack-ai-plugins](https://github.com/makigjuro/cloudstack-ai-plugins)
- **License:** MIT
- **Homepage:** https://github.com/makigjuro/cloudstack-ai-plugins#quick-start

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-makigjuro-cloudstack-ai-plugins-lint
- Seller: https://agentstack.voostack.com/s/makigjuro
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
