Skip to main content
Development

Check Project

Validate project structure against scaffold conventions -- check for required files, CI consistency, optional directory usage, and documentation completeness. Use to audit an existing project or verify a scaffold was applied correctly.

check-project

Check Project

Audit a project against the conventions defined in scaffold-project, write-readme, and the language-specific scaffold skills. Report PASS/WARN/FAIL per check with actionable fix suggestions.

Required Files

Every project must have these. Report FAIL if missing:

FileWhat to Check
README.mdExists; has centered header block
AGENTS.mdExists
LICENSEExists; contains “Apache”
CONTRIBUTING.mdExists
sr.yamlExists; has floating_tags: true and tag_prefix: "v"
.envrcExists; contains use flake
llms.txtExists
skills/*/SKILL.mdAt least one skill exists
.github/workflows/ci.ymlExists (or terraform.yml for Terraform projects)
.github/workflows/release.ymlExists (or terraform.yml for Terraform projects)

CI Consistency

Check workflow files for convention compliance. Report FAIL if violated:

CheckExpected
ci.yml permissionscontents: read at workflow level
ci.yml workflow_callPresent in on: triggers
ci.yml concurrencycancel-in-progress: true
release.yml concurrencycancel-in-progress: false
release.yml CI gateuses: ./.github/workflows/ci.yml
release.yml bot skipgithub.actor != 'sr-releaser[bot]'
release.yml force dispatchworkflow_dispatch with force boolean input

Optional Directory Checks

Report WARN (not FAIL) when conventions suggest a directory should exist:

ConditionExpected
teasr.toml existsshowcase/ directory should exist
Project is a library (has pkg/, exports in package.json, or [project.scripts] in pyproject.toml)examples/ directory should exist
Project has API routes or consumes external APIsspec/ directory should exist
examples/ existsexamples/basic/ (or equivalent simplest example) should exist

README Checks

Report WARN if:

CheckExpected
Demo image pathReferences showcase/ (not assets/)
Quick Start sectionExists with “Quick Start” heading
embed-src markersNot stale (content between markers matches referenced files)
Section orderFeatures before Installation before Quick Start

How to Run

  1. Detect the project language from manifest files (Cargo.toml, go.mod, pyproject.toml, package.json, main.tf)
  2. Run all required file checks
  3. Run CI consistency checks
  4. Run optional directory checks based on detected project type
  5. Run README checks
  6. Report results grouped by severity: FAIL first, then WARN, then PASS

Output Format

## Project Audit: {project-name}

### FAIL (must fix)
- [ ] Missing AGENTS.md -- create with project architecture and key interfaces
- [ ] ci.yml missing `permissions: contents: read` -- add at workflow level

### WARN (should fix)
- [ ] teasr.toml exists but no showcase/ directory -- run `teasr showme` or `just record`
- [ ] Library project without examples/ -- add examples/basic/ with minimal usage

### PASS
- [x] README.md with centered header
- [x] sr.yaml with floating_tags and v prefix
- [x] CI gates release, bot skip present