docs: initialize engineering starter kit
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# {{PROJECT_NAME}} Architecture
|
||||
|
||||
## High-Level Overview
|
||||
|
||||
{{ARCHITECTURE_OVERVIEW}}
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
User["User"]
|
||||
Interface["{{INTERFACE_LAYER}}"]
|
||||
Application["{{APPLICATION_LAYER}}"]
|
||||
Domain["{{DOMAIN_LAYER}}"]
|
||||
Infrastructure["{{INFRASTRUCTURE_LAYER}}"]
|
||||
|
||||
User --> Interface
|
||||
Interface --> Application
|
||||
Application --> Domain
|
||||
Application --> Infrastructure
|
||||
```
|
||||
|
||||
## Architecture Style
|
||||
|
||||
- Style: {{ARCHITECTURE_STYLE}}
|
||||
- Reason: {{ARCHITECTURE_REASON}}
|
||||
- Key trade-off: {{ARCHITECTURE_TRADE_OFF}}
|
||||
|
||||
## Folder Structure
|
||||
|
||||
```text
|
||||
{{PROJECT_ROOT}}/
|
||||
{{SOURCE_FOLDER}}/
|
||||
{{TEST_FOLDER}}/
|
||||
docs/
|
||||
```
|
||||
|
||||
## Module Responsibilities
|
||||
|
||||
| Module | Responsibility | Public Interface |
|
||||
| --- | --- | --- |
|
||||
| {{MODULE_NAME}} | {{MODULE_RESPONSIBILITY}} | {{PUBLIC_INTERFACE}} |
|
||||
|
||||
## Dependency Rules
|
||||
|
||||
- {{DEPENDENCY_RULE_1}}
|
||||
- {{DEPENDENCY_RULE_2}}
|
||||
- {{DEPENDENCY_RULE_3}}
|
||||
|
||||
## Request Flow
|
||||
|
||||
{{REQUEST_FLOW}}
|
||||
|
||||
## Data Flow
|
||||
|
||||
{{DATA_FLOW}}
|
||||
|
||||
## Domain Model
|
||||
|
||||
| Concept | Meaning | Invariants |
|
||||
| --- | --- | --- |
|
||||
| {{DOMAIN_CONCEPT}} | {{DOMAIN_MEANING}} | {{DOMAIN_INVARIANTS}} |
|
||||
|
||||
## Integration Points
|
||||
|
||||
| Integration | Direction | Protocol | Failure Policy |
|
||||
| --- | --- | --- | --- |
|
||||
| {{INTEGRATION}} | {{DIRECTION}} | {{PROTOCOL}} | {{FAILURE_POLICY}} |
|
||||
|
||||
## Security
|
||||
|
||||
- Authentication: {{AUTHENTICATION_POLICY}}
|
||||
- Authorization: {{AUTHORIZATION_POLICY}}
|
||||
- Secrets: {{SECRETS_POLICY}}
|
||||
- Input validation: {{INPUT_VALIDATION_POLICY}}
|
||||
- Audit logging: {{AUDIT_LOGGING_POLICY}}
|
||||
|
||||
## Error Handling
|
||||
|
||||
{{ERROR_HANDLING_POLICY}}
|
||||
|
||||
## Performance And Scalability
|
||||
|
||||
- Latency target: {{LATENCY_TARGET}}
|
||||
- Throughput target: {{THROUGHPUT_TARGET}}
|
||||
- Scaling strategy: {{SCALING_STRATEGY}}
|
||||
@@ -0,0 +1,61 @@
|
||||
# {{PROJECT_NAME}} Conventions
|
||||
|
||||
## Naming
|
||||
|
||||
- {{NAMING_RULE}}
|
||||
|
||||
## File Organization
|
||||
|
||||
- {{FILE_ORGANIZATION_RULE}}
|
||||
|
||||
## Folder Organization
|
||||
|
||||
- {{FOLDER_ORGANIZATION_RULE}}
|
||||
|
||||
## Dependency Injection
|
||||
|
||||
- {{DEPENDENCY_INJECTION_RULE}}
|
||||
|
||||
## Logging
|
||||
|
||||
- {{LOGGING_RULE}}
|
||||
|
||||
## Validation
|
||||
|
||||
- {{VALIDATION_RULE}}
|
||||
|
||||
## Error Handling
|
||||
|
||||
- {{ERROR_HANDLING_RULE}}
|
||||
|
||||
## DTO Rules
|
||||
|
||||
- {{DTO_RULE}}
|
||||
|
||||
## Repository Rules
|
||||
|
||||
- {{REPOSITORY_RULE}}
|
||||
|
||||
## Service Rules
|
||||
|
||||
- {{SERVICE_RULE}}
|
||||
|
||||
## Testing
|
||||
|
||||
- Unit tests: {{UNIT_TEST_RULE}}
|
||||
- Integration tests: {{INTEGRATION_TEST_RULE}}
|
||||
- End-to-end tests: {{E2E_TEST_RULE}}
|
||||
|
||||
## Git Workflow
|
||||
|
||||
- Branch naming: {{BRANCH_NAMING}}
|
||||
- Merge policy: {{MERGE_POLICY}}
|
||||
- Commit style: {{COMMIT_STYLE}}
|
||||
|
||||
## Pull Requests
|
||||
|
||||
- {{PULL_REQUEST_RULE}}
|
||||
|
||||
## Code Reviews
|
||||
|
||||
- {{CODE_REVIEW_RULE}}
|
||||
@@ -0,0 +1,48 @@
|
||||
# ADR-{{ADR_NUMBER}}: {{DECISION_TITLE}}
|
||||
|
||||
## Status
|
||||
|
||||
{{STATUS}}
|
||||
|
||||
## Date
|
||||
|
||||
{{DATE}}
|
||||
|
||||
## Context
|
||||
|
||||
{{CONTEXT}}
|
||||
|
||||
## Problem
|
||||
|
||||
{{PROBLEM}}
|
||||
|
||||
## Alternatives
|
||||
|
||||
| Alternative | Summary |
|
||||
| --- | --- |
|
||||
| {{ALTERNATIVE_1}} | {{ALTERNATIVE_1_SUMMARY}} |
|
||||
| {{ALTERNATIVE_2}} | {{ALTERNATIVE_2_SUMMARY}} |
|
||||
| {{ALTERNATIVE_3}} | {{ALTERNATIVE_3_SUMMARY}} |
|
||||
|
||||
## Pros
|
||||
|
||||
- {{PRO_1}}
|
||||
- {{PRO_2}}
|
||||
|
||||
## Cons
|
||||
|
||||
- {{CON_1}}
|
||||
- {{CON_2}}
|
||||
|
||||
## Decision
|
||||
|
||||
{{DECISION}}
|
||||
|
||||
## Consequences
|
||||
|
||||
- {{CONSEQUENCE_1}}
|
||||
- {{CONSEQUENCE_2}}
|
||||
|
||||
## Review Triggers
|
||||
|
||||
- {{REVIEW_TRIGGER}}
|
||||
@@ -0,0 +1,62 @@
|
||||
# Feature: {{FEATURE_NAME}}
|
||||
|
||||
## Objective
|
||||
|
||||
{{FEATURE_OBJECTIVE}}
|
||||
|
||||
## User Or System Value
|
||||
|
||||
{{USER_OR_SYSTEM_VALUE}}
|
||||
|
||||
## Requirements
|
||||
|
||||
- {{REQUIREMENT_1}}
|
||||
- {{REQUIREMENT_2}}
|
||||
|
||||
## Non-Goals
|
||||
|
||||
- {{NON_GOAL_1}}
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] {{ACCEPTANCE_CRITERION_1}}
|
||||
- [ ] {{ACCEPTANCE_CRITERION_2}}
|
||||
|
||||
## Architecture Notes
|
||||
|
||||
- Affected modules: {{AFFECTED_MODULES}}
|
||||
- Dependency concerns: {{DEPENDENCY_CONCERNS}}
|
||||
- Data ownership: {{DATA_OWNERSHIP}}
|
||||
- Related ADRs: {{RELATED_ADRS}}
|
||||
|
||||
## API Or Interface Changes
|
||||
|
||||
{{API_OR_INTERFACE_CHANGES}}
|
||||
|
||||
## Data Changes
|
||||
|
||||
{{DATA_CHANGES}}
|
||||
|
||||
## Security And Authorization
|
||||
|
||||
{{SECURITY_AND_AUTHORIZATION}}
|
||||
|
||||
## Testing Plan
|
||||
|
||||
- Unit: {{UNIT_TEST_PLAN}}
|
||||
- Integration: {{INTEGRATION_TEST_PLAN}}
|
||||
- End-to-end: {{E2E_TEST_PLAN}}
|
||||
- Manual: {{MANUAL_TEST_PLAN}}
|
||||
|
||||
## Rollout Plan
|
||||
|
||||
{{ROLLOUT_PLAN}}
|
||||
|
||||
## Risks
|
||||
|
||||
- {{RISK_1}}
|
||||
- {{RISK_2}}
|
||||
|
||||
## Open Questions
|
||||
|
||||
- {{OPEN_QUESTION}}
|
||||
@@ -0,0 +1,90 @@
|
||||
# {{PROJECT_NAME}}
|
||||
|
||||
## Vision
|
||||
|
||||
{{PROJECT_VISION}}
|
||||
|
||||
## Goals
|
||||
|
||||
- {{GOAL_1}}
|
||||
- {{GOAL_2}}
|
||||
- {{GOAL_3}}
|
||||
|
||||
## Non-Goals
|
||||
|
||||
- {{NON_GOAL_1}}
|
||||
- {{NON_GOAL_2}}
|
||||
|
||||
## Functional Requirements
|
||||
|
||||
| ID | Requirement | Priority |
|
||||
| --- | --- | --- |
|
||||
| FR-001 | {{FUNCTIONAL_REQUIREMENT}} | Must |
|
||||
|
||||
## Non-Functional Requirements
|
||||
|
||||
| Category | Requirement |
|
||||
| --- | --- |
|
||||
| Performance | {{PERFORMANCE_REQUIREMENT}} |
|
||||
| Security | {{SECURITY_REQUIREMENT}} |
|
||||
| Availability | {{AVAILABILITY_REQUIREMENT}} |
|
||||
| Maintainability | {{MAINTAINABILITY_REQUIREMENT}} |
|
||||
|
||||
## Tech Stack
|
||||
|
||||
| Area | Choice |
|
||||
| --- | --- |
|
||||
| Language | {{LANGUAGE}} |
|
||||
| Framework | {{FRAMEWORK}} |
|
||||
| Database | {{DATABASE}} |
|
||||
| Deployment | {{DEPLOYMENT}} |
|
||||
|
||||
## Runtime
|
||||
|
||||
| Environment | URL or Entry Point | Notes |
|
||||
| --- | --- | --- |
|
||||
| Local | {{LOCAL_URL}} | {{LOCAL_NOTES}} |
|
||||
| Staging | {{STAGING_URL}} | {{STAGING_NOTES}} |
|
||||
| Production | {{PRODUCTION_URL}} | {{PRODUCTION_NOTES}} |
|
||||
|
||||
## Infrastructure
|
||||
|
||||
- Hosting: {{HOSTING}}
|
||||
- Storage: {{STORAGE}}
|
||||
- Network: {{NETWORK}}
|
||||
- Secrets: {{SECRETS}}
|
||||
|
||||
## Authentication And Authorization
|
||||
|
||||
- Authentication: {{AUTHENTICATION}}
|
||||
- Authorization: {{AUTHORIZATION}}
|
||||
- Roles or policies: {{ROLES_OR_POLICIES}}
|
||||
|
||||
## Logging And Monitoring
|
||||
|
||||
- Logging: {{LOGGING}}
|
||||
- Monitoring: {{MONITORING}}
|
||||
- Alerting: {{ALERTING}}
|
||||
|
||||
## Testing
|
||||
|
||||
- Unit tests: {{UNIT_TESTS}}
|
||||
- Integration tests: {{INTEGRATION_TESTS}}
|
||||
- End-to-end tests: {{E2E_TESTS}}
|
||||
- Manual checks: {{MANUAL_CHECKS}}
|
||||
|
||||
## CI/CD
|
||||
|
||||
- CI: {{CI}}
|
||||
- CD: {{CD}}
|
||||
- Required checks: {{REQUIRED_CHECKS}}
|
||||
|
||||
## Roadmap
|
||||
|
||||
| Milestone | Outcome |
|
||||
| --- | --- |
|
||||
| {{MILESTONE}} | {{OUTCOME}} |
|
||||
|
||||
## Open Questions
|
||||
|
||||
- {{OPEN_QUESTION}}
|
||||
Reference in New Issue
Block a user