2026-05-02 16:42:44 -04:00
# Engineering Handbook
2026-06-11 14:14:17 -04:00



2026-05-02 16:42:44 -04:00
Engineering conventions and best practices for Sea Haven Industries.
## Contents
- [Naming Conventions ](naming-conventions.md ) -- kebab-case everywhere, no exceptions
Add Bedrock, dev-env, and Lambda template pages (#7)
Adds three handbook pages covering conventions that were previously
scattered across feedback memories or rederived from scratch each
time:
- bedrock.md captures the cross-region inference profile requirement
for Claude 4.x Bedrock Agents and the alias-version pinning gotcha,
plus the IAM resource pattern and the KB Docker requirement.
- dev-environment.md documents the workstation directory layout,
pyenv/Node conventions, the macOS launchd/TCC sandbox gotcha, and
cleanup cadence.
- lambda-template.md provides a minimal SAM scaffold that follows the
Lambda defaults already in aws-infrastructure.md (Python 3.12,
arm64, explicit 60-day log retention, scoped Secrets Manager
access, module-level secret cache).
Also extends two existing pages:
- sam-project-layout.md gains a Lambda Layers section with the
BuildMethod nesting pattern that caused a ~22-hour production
outage when violated.
- naming-conventions.md adds a Legacy Stacks note acknowledging that
pre-convention PascalCase stacks (SeaHavenDoorUnlockStack,
WorkorderIngestStack) stay as-is rather than risk stack
replacement.
2026-05-14 19:50:37 -04:00
- [Development Environment ](dev-environment.md ) -- workstation directory layout, pyenv, Node, launchd/TCC
2026-07-31 14:16:39 -04:00
- [Issue Tracking ](issue-tracking.md ) -- Jira projects, ticket description template, ticket hygiene
2026-09-15 22:05:33 +00:00
- [Git Workflow ](git-workflow.md ) -- feature branches, incremental commits, merge to main then release for prod
2026-07-17 19:30:02 -04:00
- [Commit Messages ](commit-messages.md ) -- Conventional Commits, type(scope) format, explain "why"
2026-05-02 16:42:44 -04:00
- [Pull Requests ](pull-requests.md ) -- scope, title, description format, merge strategy
- [Code Review ](code-review.md ) -- what to look for, giving feedback, turnaround expectations
2026-06-02 19:36:09 -04:00
- [Code Review Rubric ](code-review-rubric.md ) -- BLOCK/FIX/NIT/QUESTION finding categories and output format
2026-09-15 22:05:33 +00:00
- [GitHub Standards ](github-standards.md ) -- branch defaults, repo hygiene, Environments
- [AWS Infrastructure ](aws-infrastructure.md ) -- HCP Terraform default, remaining SAM/CDK, Lambda defaults
- [HCP Terraform ](hcp-terraform.md ) -- workspaces, seam, SSM deploy contract, exec roles
- [Terraform Project Layout ](terraform-project-layout.md ) -- standard directory structure for HCP app repos
- [SAM Project Layout ](sam-project-layout.md ) -- remaining path for existing SAM stacks
- [CDK Project Layout ](cdk-project-layout.md ) -- remaining path for CDK and Bedrock
- [Lambda Starter Template ](lambda-template.md ) -- remaining SAM scaffold for a Python Lambda
2026-05-02 16:42:44 -04:00
- [Secrets and Configuration ](secrets-and-config.md ) -- Secrets Manager vs SSM Parameter Store
2026-09-15 22:05:33 +00:00
- [CI/CD Pipelines ](cicd.md ) -- HCP lane default, remaining SAM/CDK reusables
Add Bedrock, dev-env, and Lambda template pages (#7)
Adds three handbook pages covering conventions that were previously
scattered across feedback memories or rederived from scratch each
time:
- bedrock.md captures the cross-region inference profile requirement
for Claude 4.x Bedrock Agents and the alias-version pinning gotcha,
plus the IAM resource pattern and the KB Docker requirement.
- dev-environment.md documents the workstation directory layout,
pyenv/Node conventions, the macOS launchd/TCC sandbox gotcha, and
cleanup cadence.
- lambda-template.md provides a minimal SAM scaffold that follows the
Lambda defaults already in aws-infrastructure.md (Python 3.12,
arm64, explicit 60-day log retention, scoped Secrets Manager
access, module-level secret cache).
Also extends two existing pages:
- sam-project-layout.md gains a Lambda Layers section with the
BuildMethod nesting pattern that caused a ~22-hour production
outage when violated.
- naming-conventions.md adds a Legacy Stacks note acknowledging that
pre-convention PascalCase stacks (SeaHavenDoorUnlockStack,
WorkorderIngestStack) stay as-is rather than risk stack
replacement.
2026-05-14 19:50:37 -04:00
- [Bedrock ](bedrock.md ) -- cross-region inference profiles, alias pinning, KB Docker requirement
2026-08-03 18:01:08 -04:00
- [Git Hooks ](hooks/ ) -- shim for the global security pre-push hook
Add CDK version policy, update Node 24 and GitHub Actions CI/CD (#6)
* Update CDK version policy, Node 24 runtime, and GitHub Actions CI/CD
- Pin blessed aws-cdk-lib version (2.253.1) with upgrade procedure
- Update Lambda runtime default from Node 22 to Node 24
- Rewrite CI/CD page to reflect GitHub Actions reusable workflows
(was still referencing CodePipeline/CodeBuild)
* Add pre-push hook for npm ci validation
Catches lock file drift locally before it breaks CI. Includes
install instructions in git-workflow.md.
* Add repo provisioning script
Automates the new-repo checklist: GitHub repo creation, OIDC deploy
role, repo secret, security features, CI/CD workflow stubs, and
pre-push hook installation. Supports both SAM and CDK stack types.
* Add shared VpnEc2Instance CDK construct
Reference construct for the VPN-accessible EC2 pattern used by
file-share and forgejo. Includes VPC/subnet lookup, SG, IAM role,
encrypted EBS, and DLM snapshots. Copy into lib/constructs/.
* Add post-deploy health check template
Template script for project-specific health checks. Copy to
scripts/health-check.sh — CD workflows run it automatically.
2026-05-14 18:39:13 -04:00
- [Scripts ](scripts/ ) -- repo provisioning, automation tooling
- [CDK Constructs ](constructs/ ) -- shared VPN EC2 instance construct and other reusable patterns
2026-05-02 16:42:44 -04:00
## Contributing
See [CONTRIBUTING.md ](CONTRIBUTING.md ).
## License
This work is licensed under [CC-BY-4.0 ](https://creativecommons.org/licenses/by/4.0/ ). The commit messages section adapts content from [commit-messages-guide ](https://github.com/RomuloOliveira/commit-messages-guide ) by Romulo Oliveira, also licensed under CC-BY-4.0.