name: lab-review-checklist description: 11-category compliance checklist and evaluation procedure for lab review. All check items reference lab-shared-contract requirement IDs. user-invokable: false
Lab Review Checklist
Compliance checklist and evaluation procedure for validating generated lab content. Report format is defined in lab-shared-contract R-014.
When to Use
- Reviewing generated lab files before delivery
- Auditing existing labs for compliance
- Re-validating after remediation
R-150: 11-Category Checklist
Category 1: Naming Compliance
- Resource group follows
lab-shared-contractR-001 - Resources use correct prefixes per
lab-shared-contractR-002 / R-003 - Bicep stack name (if applicable) per
lab-shared-contractR-004 - No naming convention violations
- Resource names describe role/function, not lab topic per
lab-shared-contractR-031 - Each resource has a distinct, scenario-appropriate name (no uniform topic echo) per
lab-shared-contractR-031 - All resource names are static unless resource is subject to soft-delete name reservation per
lab-shared-contractR-027 / R-028 - Random suffixes used only for soft-delete resources listed in
lab-shared-contractR-028 - All resource names referenced in README match names defined in IaC code per
lab-shared-contractR-029 - All resource names defined in IaC code match names referenced in README per
lab-shared-contractR-029
Category 2: Required Tags
- All 7 tags present per
lab-shared-contractR-005 -
Projectis uppercase -
DateCreatedis static (no dynamic functions) -
EnvironmentisLab -
DeploymentMethodmatches actual method
Category 3: Region Rules
- Default region is
eastusperlab-shared-contractR-006 - Only US regions used
- Fallback chain documented if non-default region
Category 4: README Structure
- All 14 sections present per
lab-shared-contractR-011 - Sections in correct order
- Mermaid diagram present when required per
lab-shared-contractR-013 - Correct answer NOT in Section 1, only in Section 10 (per
lab-readme-authoringR-142)
Category 5: Validation Sequence
- Syntax validation step present per
lab-shared-contractR-018 - Regional capacity test present for constrained services per
lab-shared-contractR-019 - Final validation step present
- Steps in correct order
Category 6: Code Quality
- Header block in all code files per
lab-shared-contractR-012 - Header includes: Program, Description, Context, Author, Date
- No header in README (per
lab-readme-authoringR-142) - Correct provider/version constraints (per
lab-iaac-terraformR-120 or Bicep equivalents) - Local state only (no remote backend)
- Secrets handled properly
- Sensitive outputs marked
Category 7: Module Structure
- Modules used when 2+ types per
lab-shared-contractR-022 - One concern per module
- Thin root orchestration
- Tags passed to all modules per
lab-shared-contractR-023 - No anti-pattern: unrelated resources in one module
Category 8: Cost & Limits
- SKUs match
lab-shared-contractR-007 / R-008 - Resource counts within
lab-shared-contractR-009 - Cleanup references 7-day policy per
lab-shared-contractR-015
Category 9: Soft-Delete & Purge
- Soft-delete disabled where possible per
lab-shared-contractR-016 - Purge flags set for applicable resources
- Purge documented in cleanup section
- Random suffix applied only to soft-delete resources per
lab-shared-contractR-028 - Non-soft-delete resources use static names (no
uniqueString()/random_string) perlab-shared-contractR-027
Category 10: Subscription Validation
- Lab subscription ID correct per
lab-shared-contractR-020 - Terraform: ID in
terraform.tfvars - Bicep: subscription context validated
- Validation script checks subscription
Category 11: Command-Line Fidelity
- Cmdlet output property names match actual object model per
lab-shared-contractR-030 - Nested/complex properties expanded correctly (e.g.,
Sku.NamenotSku) perlab-shared-contractR-030 -
Format-List/Format-Tableexpressions reference valid properties; calculated properties used for nested values perlab-shared-contractR-030 - All cmdlet
-ParameterNamevalues are valid perlab-shared-contractR-030 - Variables set in earlier steps are reachable in later steps within the same section per
lab-shared-contractR-030 -
# Expected:comments match actual command output perlab-shared-contractR-030 - REST API
api-versionvalues are current and valid perlab-shared-contractR-030 - Pipeline commands accept the preceding output type per
lab-shared-contractR-030
R-151: Review Procedure
- Read all generated files in the lab folder.
- Evaluate every item in each of the 10 categories.
- Mark PASS or FAIL with a specific explanation.
- Produce report per
lab-shared-contractR-014.
R-152: Evaluation Rules
- A single FAIL in categories 1, 2, 4, or 5 → overall FAIL (critical).
- FAILs in categories 3, 6–11 → overall FAIL.
- Every FAIL must include actionable fix instructions.
- Do not approve labs that skip capacity validation for services in
lab-shared-contractR-019.
R-153: When-to-Use Criteria
Use this skill when reviewing generated lab content for governance compliance.