Skip to content

Commit 0143171

Browse files
Add CODING_STANDARD.md
1 parent ec77460 commit 0143171

1 file changed

Lines changed: 70 additions & 8 deletions

File tree

.claude/CODING_STANDARD.md

Lines changed: 70 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -292,21 +292,83 @@ This document defines coding standards for InfraHouse projects.
292292
* **README.md (required):**
293293
- Must include terraform-docs markers: `<!-- BEGIN_TF_DOCS -->` and `<!-- END_TF_DOCS -->`
294294
- Pre-commit hook uses terraform-docs to auto-generate documentation
295-
- Must have badges:
296-
- Terraform Registry URL
297-
- License
298-
- CD status
299-
- Relevant documentation (e.g., `[![AWS Lambda](https://img.shields.io/badge/AWS-Lambda-orange?logo=awslambda)]
300-
(https://aws.amazon.com/lambda/)`)
301-
- Module description
302-
- Usage examples
295+
- **Required badges** (in this order):
296+
- Terraform Registry: `[![Registry](https://img.shields.io/badge/terraform-registry-623CE4?logo=terraform)](registry-url)`
297+
- Latest Release: `[![GitHub release](https://img.shields.io/github/v/release/infrahouse/repo-name)](release-url)`
298+
- License: `[![License](https://img.shields.io/github/license/infrahouse/repo-name)](LICENSE)`
299+
- Documentation: `[![Docs](https://img.shields.io/badge/docs-github.io-blue)](https://infrahouse.github.io/repo-name/)`
300+
- Security: `[![Security](https://github.com/infrahouse/repo-name/actions/workflows/vuln-scanner-pr.yml/badge.svg)](workflow-url)`
301+
- AWS Service Badge(s): Link to relevant AWS service(s) the module uses
302+
- Contact: `[![Need Help?](https://img.shields.io/badge/Need%20Help%3F-Contact%20Us-0066CC)](https://infrahouse.com/contact)`
303+
- **Required sections:**
304+
1. Brief description (what it does, why it exists)
305+
2. Features (bullet list)
306+
3. Quick Start (minimal working example)
307+
4. Documentation (links to GitHub Pages)
308+
5. Requirements (Terraform version, providers)
309+
6. Usage (terraform-docs auto-generated)
310+
7. Examples (link to examples/)
311+
8. Contributing (link to CONTRIBUTING.md)
312+
9. License (link to LICENSE)
303313
* **examples/ directory:**
304314
- Desired but optional
305315
- Provide working examples when included
306316
* **terraform-docs configuration:**
307317
- `.terraform-docs.yml` is managed by github-control
308318
- README.md uses centrally-managed configuration
309319

320+
### GitHub Pages Documentation (terraform_module)
321+
* **Deployment:** Automated via `.github/workflows/docs.yml` (managed by github-control)
322+
* **Built with:** MkDocs with Material theme
323+
* **Required pages:**
324+
- `docs/index.md` - Overview, features, quick start
325+
- `docs/getting-started.md` - Prerequisites, first deployment
326+
- `docs/configuration.md` - All variables explained with examples
327+
* **Recommended pages:**
328+
- `docs/architecture.md` - How it works, diagrams
329+
- `docs/examples.md` - Common use cases with explanations
330+
- `docs/troubleshooting.md` - Common issues and solutions
331+
- `docs/changelog.md` - Or link to CHANGELOG.md
332+
* **Optional pages:**
333+
- `docs/comparison.md` - vs alternatives
334+
- `docs/security.md` - Security considerations
335+
- `docs/monitoring.md` - Observability setup
336+
- `docs/upgrading.md` - Migration guides between versions
337+
338+
### Repository Files
339+
* **Must have:**
340+
- `README.md` - Module documentation (see above)
341+
- `LICENSE` - Apache 2.0 (recommended for patent protection and enterprise adoption)
342+
- `CHANGELOG.md` - Auto-generated with git-cliff
343+
- `.terraform-docs.yml` - Managed by github-control
344+
- `mkdocs.yml` - MkDocs configuration (managed by github-control)
345+
- `cliff.toml` - git-cliff configuration (managed by github-control)
346+
- `.github/workflows/release.yml` - Auto-create GitHub Releases from tags (managed by github-control)
347+
- `examples/` directory - Working examples
348+
* **Should have:**
349+
- `CONTRIBUTING.md` - Contribution guidelines
350+
- `SECURITY.md` - Security policy, how to report vulnerabilities
351+
- `CODEOWNERS` - Auto-assign reviewers
352+
- `.github/ISSUE_TEMPLATE/` - Bug report, feature request templates
353+
- `.github/PULL_REQUEST_TEMPLATE.md` - PR template
354+
355+
### Release Automation
356+
* **Automated via `.github/workflows/release.yml`** (managed by github-control)
357+
* **Trigger:** Push of version tags (e.g., `0.1.0`, `v1.0.0`)
358+
* **Process:**
359+
1. git-cliff generates changelog for the release
360+
2. GitHub Release is created automatically with release notes
361+
3. "Latest Release" badge in README reflects the new version
362+
* **Manual release process** (via Makefile targets):
363+
```makefile
364+
release-patch:
365+
git-cliff --tag $(shell bumpversion --dry-run --list patch | grep new_version | cut -d= -f2) -o CHANGELOG.md
366+
bumpversion patch
367+
git push && git push --tags
368+
# GitHub Actions workflow automatically creates the release
369+
```
370+
* **Available targets:** `release-patch`, `release-minor`, `release-major`
371+
310372
### Resource Organization
311373
* **`count` vs `for_each`:**
312374
- Use `count` for simple create/don't create scenarios (e.g., `count = var.enable_feature ? 1 : 0`)

0 commit comments

Comments
 (0)