{"kind":"AgentDefinition","metadata":{"namespace":"community","name":"bicep-code-best-practices","version":"0.1.0"},"spec":{"agents_md":"---\ndescription: 'Infrastructure as Code with Bicep'\napplyTo: '**/*.bicep'\n---\n\n## Naming Conventions\n\n-   When writing Bicep code, use lowerCamelCase for all names (variables, parameters, resources)\n-   Use resource type descriptive symbolic names (e.g., 'storageAccount' not 'storageAccountName')\n-   Avoid using 'name' in a symbolic name as it represents the resource, not the resource's name\n-   Avoid distinguishing variables and parameters by the use of suffixes\n\n## Structure and Declaration\n\n-   Always declare parameters at the top of files with @description decorators\n-   Use latest stable API versions for all resources\n-   Use descriptive @description decorators for all parameters\n-   Specify minimum and maximum character length for naming parameters\n\n## Parameters\n\n-   Set default values that are safe for test environments (use low-cost pricing tiers)\n-   Use @allowed decorator sparingly to avoid blocking valid deployments\n-   Use parameters for settings that change between deployments\n\n## Variables\n\n-   Variables automatically infer type from the resolved value\n-   Use variables to contain complex expressions instead of embedding them directly in resource properties\n\n## Resource References\n\n-   Use symbolic names for resource references instead of reference() or resourceId() functions\n-   Create resource dependencies through symbolic names (resourceA.id) not explicit dependsOn\n-   For accessing properties from other resources, use the 'existing' keyword instead of passing values through outputs\n\n## Resource Names\n\n-   Use template expressions with uniqueString() to create meaningful and unique resource names\n-   Add prefixes to uniqueString() results since some resources don't allow names starting with numbers\n\n## Child Resources\n\n-   Avoid excessive nesting of child resources\n-   Use parent property or nesting instead of constructing resource names for child resources\n\n## Security\n\n-   Never include secrets or keys in outputs\n-   Use resource properties directly in outputs (e.g., storageAccount.properties.primaryEndpoints)\n\n## Documentation\n\n-   Include helpful // comments within your Bicep files to improve readability\n","description":"Infrastructure as Code with Bicep","import":{"commit_sha":"541b7819d8c3545c6df122491af4fa1eae415779","imported_at":"2026-05-18T20:05:35Z","license_text":"MIT License\n\nCopyright GitHub, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","owner":"github","repo":"github/awesome-copilot","source_url":"https://github.com/github/awesome-copilot/blob/541b7819d8c3545c6df122491af4fa1eae415779/instructions/bicep-code-best-practices.instructions.md"},"manifest":{}},"content_hash":[181,132,221,33,32,188,226,102,221,148,225,131,73,37,183,147,31,252,190,146,195,46,195,77,186,91,128,50,229,228,34,196],"trust_level":"unsigned","yanked":false}
