Central reference for all validation scripts, linting commands, git hooks, and CI workflows.
Validation runs at three stages, catching issues progressively earlier:
flowchart LR
A["Pre-Commit<br/>(lefthook)"] --> B["Pre-Push<br/>(lefthook)"]
B --> C["CI<br/>(GitHub Actions)"]
style A fill:#e8f5e9,stroke:#4caf50,color:#000
style B fill:#fff3e0,stroke:#ff9800,color:#000
style C fill:#ffebee,stroke:#f44336,color:#000
Pre-commit — validates staged files only (fast, file-type scoped)
Pre-push — validates all changed files vs main (domain-scoped, parallel)
CI — validates the full repository on every PR and push to main
A post-commit layer also runs lightweight checks after each commit.
All hooks are defined in lefthook.yml at the repository root.
Hook Trigger (glob) Purpose markdown-lint*.mdmarkdownlint on staged markdown files link-checkdocs/**/*.mdVerify URLs in staged docs files h2-syncSKILL.md, azure-artifacts files Check H2 heading sync across sources artifact-validationagent-output/**/*.mdValidate artifact H2 structure against templates agent-frontmatter**/*.agent.mdValidate agent YAML frontmatter syntax model-alignment**/*.agent.md, **/*.prompt.mdCheck model-prompt alignment agent-checks**/*.agent.mdAgent body size and language density instruction-checks**/*.instructions.mdInstruction frontmatter validation instruction-refsAgents, skills, instructions Cross-reference validation python-lintmcp/**/*.pyRuff linter on Python files terraform-fmt*.tfTerraform formatting check terraform-validate*.tfTerraform validation per project
Hook Purpose branch-namingValidate branch name uses an approved prefix branch-scopeValidate domain branches only modify in-scope files diff-based-checkRun domain-scoped validators for changed file types
Hook Purpose version-syncCheck version consistency across VERSION.md, package.json, mkdocs.yml deprecated-refsDetect deprecated references in changed markdown json-syntaxValidate JSON syntax of changed .json files
All scripts are in the scripts/ directory. Run via npm run <command>.
npm Command Script Purpose lint:agent-frontmattervalidate-agent-frontmatter.mjsAgent definition frontmatter compliance lint:agent-checkslint-agent-checks.mjsAgent body size (≤350 lines) and language density lint:model-alignmentlint-model-alignment.mjsModel-specific prompt pattern compliance lint:skills-formatvalidate-skills-format.mjsSkill file format and frontmatter validate:skill-checksvalidate-skill-checks.mjsSkill size (≤500 lines) and references validate:instruction-checksvalidate-instruction-checks.mjsInstruction frontmatter and applyTo patterns validate:agent-registryvalidate-agent-registry.mjsAgent registry consistency validate:skill-affinityvalidate-skill-affinity.mjsSkill-to-agent affinity mappings validate:workflow-graphvalidate-workflow-graph.mjsDAG integrity (no orphans, no cycles)
npm Command Script Purpose lint:artifact-templatesvalidate-artifact-templates.mjsH2 heading strictness for agent outputs lint:h2-syncvalidate-h2-sync.mjsH2 heading consistency across three sources fix:artifact-h2fix-artifact-h2.mjsAuto-fix artifact H2 headings e2e:validatevalidate-e2e-step.mjsE2E pipeline structural validation e2e:benchmarkbenchmark-e2e.mjs8-dimension benchmark scoring
npm Command Script Purpose lint:governance-refsvalidate-governance-refs.mjsGovernance guardrails integrity validate:no-hardcoded-countsvalidate-no-hardcoded-counts.mjsPrevent hardcoded entity counts validate:stale-refsvalidate-no-stale-skill-references.mjsDetect stale skill references lint:deprecated-refsvalidate-no-deprecated-refs.mjsBlock deprecated API/pattern references validate:iac-security-baselinevalidate-iac-security-baseline.mjsIaC security baseline (TLS, HTTPS, blob, identity, SQL auth)
npm Command Script Purpose validate:session-statevalidate-session-state.mjsSession state JSON schema compliance validate:session-lockvalidate-session-lock.mjsDistributed lock/claim model integrity
npm Command Script Purpose lint:glob-auditvalidate-glob-audit.mjsDetect overly broad glob patterns lint:skill-referencesvalidate-skill-references.mjsValidate skill cross-references lint:orphaned-contentvalidate-orphaned-content.mjsDetect unreferenced skills/content validate:docs-syncvalidate-docs-sync.mjsDocumentation file sync checks lint:docs-freshnesscheck-docs-freshness.mjsDocumentation staleness detection lint:version-syncvalidate-version-sync.mjsVersion consistency across files
npm Command Script Purpose validate:vscodevalidate-vscode-config.mjsVS Code settings completeness validate:hooksvalidate-hooks.mjsHook script structure and syntax lint:mcp-configvalidate-mcp-config.mjsMCP server configuration validity
npm Command Tool Purpose lint:mdmarkdownlint-cli2 Markdown formatting and style lint:linksmarkdown-link-check URL validity in all markdown files lint:links:docsmarkdown-link-check URL validity in docs/ only lint:jsonlint-json.mjsJSON/JSONC syntax validation lint:pythonruff Python code quality (mcp/azure-pricing-mcp/) lint:terraform-fmtterraform fmt Terraform formatting compliance validate:terraformterraform validate Terraform validation per project
npm Command Purpose validate:allRun all validators (parallel Node + external) validate:_nodeAll Node.js validators in parallel validate:_externalAll external tool validators in parallel validate:agentsAgent frontmatter + skills format combined
All workflows are in .github/workflows/.
Workflow File Trigger Purpose Lint lint.ymlPR to main, push to main Markdown, artifacts, H2 sync, instructions, JSON, MCP config Agent Validation agent-validation.ymlChanges to agents/skills/instructions Agent frontmatter, skills format, VS Code config Branch Enforcement branch-enforcement.ymlPR to main Branch naming convention and scope validation Link Check link-check.ymlDocs changes URL validity in documentation Docs docs.ymlDocs changes Build and deploy MkDocs site Docs Freshness docs-freshness.ymlScheduled Documentation staleness detection E2E Validation e2e-validation.ymlAgent output changes E2E pipeline structural validation Policy Compliance policy-compliance-check.ymlIaC changes Azure Policy compliance checks AVM Version Check avm-version-check.ymlScheduled Azure Verified Module version updates Azure Deprecation Tracker azure-deprecation-tracker.ymlScheduled Track Azure service deprecations
# Run a specific category
npm run lint:md # Markdown only
npm run lint:agent-frontmatter # Agent definitions only
npm run validate:session-state # Session state only
# Auto-fix where supported
npm run lint:md:fix # Fix markdown issues
npm run fix:artifact-h2 <file> --apply # Fix artifact H2 headings
npm run lint:python:fix # Fix Python lint issues