Borrowing it
Nothing to install: this file belongs to MicrosoftLearning/trainer-demo-deploy. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/MicrosoftLearning/trainer-demo-deploy/main/.github/instructions/az-bicep-code-best-practices.instructions.mdgit clone --depth 1 https://github.com/MicrosoftLearning/trainer-demo-deployWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/microsoftlearning/trainer-demo-deploy/az-bicep-code-best-practices)<a href="https://agentmods.dev/instructions/microsoftlearning/trainer-demo-deploy/az-bicep-code-best-practices"><img src="https://agentmods.dev/badge/instructions/microsoftlearning/trainer-demo-deploy/az-bicep-code-best-practices/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/microsoftlearning/trainer-demo-deploy/az-bicep-code-best-practices"><img src="https://agentmods.dev/badge/instructions/microsoftlearning/trainer-demo-deploy/az-bicep-code-best-practices.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.02686 | $0.02686 |
| Opus 5.5 | $0.01074 | $0.01074 |
| Sonnet 5.5 | $0.00537 | $0.00537 |
| Haiku 4.5 | $0.00269 | $0.00269 |
Grade A, and why
trainer-demo-deploy az-bicep-code-best-practices.instructions.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 318 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Bicep Development Best Practices
Quick Reference
| Rule | Standard |
|---|---|
| Region | eastus2 (alt: westus3) |
| Resource group | Always named after the azd environment: rg-${environment} — see below |
| Unique suffix | var uniqueSuffix = uniqueString(resourceGroup().id) in main.bicep |
| AVM first | MANDATORY - Use Azure Verified Modules where available |
| Tags | Environment, ManagedBy, Project, SecurityControl: 'Ignore' on ALL resources including the resource group |
Naming Conventions
Resource Patterns
| Resource | Max | Pattern | Example |
|---|---|---|---|
| Storage | 24 | st{project}{env}{suffix} |
stcontosodev7xk2 |
| Key Vault | 24 | kv-{project}-{env}-{suffix} |
kv-contoso-dev-abc123 |
| SQL Server | 63 | sql-{project}-{env}-{suffix} |
sql-contoso-dev-abc123 |
Identifiers
Use lowerCamelCase for parameters, variables, resources, modules.
Unique Names (CRITICAL)
// main.bicep - Generate once, pass to ALL modules
var uniqueSuffix = uniqueString(resourceGroup().id)
module keyVault 'modules/key-vault.bicep' = {
params: { uniqueSuffix: uniqueSuffix }
}
// Every module must accept uniqueSuffix and use it in resource names
var kvName = 'kv-${take(projectName, 10)}-${environment}-${take(uniqueSuffix, 6)}'
Resource Group Naming (MANDATORY)
The resource group must always be named after the azd environment so operators can immediately identify which environment a resource group belongs to.
- Pattern:
rg-{environment}(e.g.rg-demo,rg-wed0429) - In
main.bicep, declare as atargetScope = 'subscription'deployment and create the resource group inline, or use the azd default resource group name convention by setting it inmain.bicepparam:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 318 lines · 2,686 tokens per session scan A fa23b5a51d47
trainer-demo-deploy az-bicep-code-best-practices.instructions.md is an instructions file published in the GitHub repository MicrosoftLearning/trainer-demo-deploy (31 stars, last pushed 11d ago), licensed MIT. It adds 2,686 tokens to every session, about $0.0107 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-11-07.
trainer-demo-deploy az-bicep-code-best-practices.instructions.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| trainer-demo-deploy az-bicep-code-best-practices.instructions.mdMicrosoftLearning/trainer-demo-deploy | Instructions file | 31 | 11d ago | MIT | A | 2,686 | GitHub Copilot |
| plan-forge naming.instructions.mdsrnichols/plan-forge | Instructions file | 6 | 2d ago | MIT | A | 1,453 | GitHub Copilot |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | today | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | today | MIT | A | 7,461 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | today | MIT | A | 5,516 | GitHub Copilot |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | today | MIT | A | 4,680 | Codex, OpenCode |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | today | MIT | A | 3,093 | GitHub Copilot |