@botdigit/agent-blueprint 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +204 -0
- package/LICENSE +21 -0
- package/PROMPT.md +22 -0
- package/README.md +248 -0
- package/bin/cli.js +160 -0
- package/frameworks/axum/SKILL.md +73 -0
- package/frameworks/django/SKILL.md +71 -0
- package/frameworks/fastapi/SKILL.md +73 -0
- package/frameworks/laravel/SKILL.md +67 -0
- package/frameworks/nextjs/SKILL.md +60 -0
- package/frameworks/rails/SKILL.md +78 -0
- package/frameworks/react/SKILL.md +58 -0
- package/frameworks/spring/SKILL.md +79 -0
- package/install.sh +83 -0
- package/llms.txt +26 -0
- package/package.json +47 -0
- package/skills/00-orchestrator/.gitkeep +26 -0
- package/skills/00-orchestrator/SKILL.md +368 -0
- package/skills/00-orchestrator/decision-tree.md +93 -0
- package/skills/00-orchestrator/project-detection.md +81 -0
- package/skills/00-orchestrator/skill-selection.md +87 -0
- package/skills/00-orchestrator/workflow.md +25 -0
- package/skills/01-discovery/SKILL.md +66 -0
- package/skills/02-project-context/SKILL.md +89 -0
- package/skills/03-business-architecture/SKILL.md +231 -0
- package/skills/04-architecture/SKILL.md +131 -0
- package/skills/05-documentation/SKILL.md +133 -0
- package/skills/06-codebase-audit/SKILL.md +127 -0
- package/skills/07-security/SKILL.md +159 -0
- package/skills/08-testing/SKILL.md +120 -0
- package/skills/09-performance/SKILL.md +96 -0
- package/skills/10-audit/SKILL.md +112 -0
- package/stacks/dotnet/SKILL.md +56 -0
- package/stacks/go/SKILL.md +61 -0
- package/stacks/java/SKILL.md +58 -0
- package/stacks/javascript/SKILL.md +47 -0
- package/stacks/php/SKILL.md +51 -0
- package/stacks/python/SKILL.md +52 -0
- package/stacks/ruby/SKILL.md +51 -0
- package/stacks/rust/SKILL.md +55 -0
- package/stacks/typescript/SKILL.md +55 -0
- package/templates/adr/ADR-TEMPLATE.md +64 -0
- package/templates/api-spec/API_SPEC_TEMPLATE.md +137 -0
- package/templates/architecture/ARCHITECTURE_TEMPLATE.md +81 -0
- package/templates/business-requirements/BUSINESS_REQUIREMENTS_TEMPLATE.md +77 -0
- package/templates/changelog/CHANGELOG_TEMPLATE.md +37 -0
- package/templates/database/DATABASE_TEMPLATE.md +77 -0
- package/templates/deployment/DEPLOYMENT_TEMPLATE.md +80 -0
- package/templates/project-brief/PROJECT_BRIEF_TEMPLATE.md +72 -0
- package/templates/runbook/RUNBOOK_TEMPLATE.md +54 -0
- package/templates/security/SECURITY_TEMPLATE.md +93 -0
- package/templates/testing/TESTING_TEMPLATE.md +87 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Architecture
|
|
2
|
+
|
|
3
|
+
**Project:** [name]
|
|
4
|
+
**Date:** [YYYY-MM-DD]
|
|
5
|
+
**Last reviewed:** [YYYY-MM-DD]
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Architectural Style
|
|
10
|
+
|
|
11
|
+
- **Style:** [modular monolith / microservices / serverless / client-server / event-driven / layered / hexagonal / or "not formalized"]
|
|
12
|
+
- **Rationale:** [why this style, or "not documented"]
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Components
|
|
17
|
+
|
|
18
|
+
### [Component Name]
|
|
19
|
+
|
|
20
|
+
- **Responsibility:** [what it does]
|
|
21
|
+
- **Communicates with:** [other components, external services]
|
|
22
|
+
- **Technology:** [language, framework, or "inherits from project"]
|
|
23
|
+
- **Deployment:** [how this component runs — same process, separate service, etc.]
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Data Flow
|
|
28
|
+
|
|
29
|
+
[How data moves through the system — description or ASCII diagram]
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Boundaries
|
|
34
|
+
|
|
35
|
+
- [boundary]: [what is inside, what is outside]
|
|
36
|
+
- [boundary]: [what is inside, what is outside]
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Deployment Topology
|
|
41
|
+
|
|
42
|
+
[How the system is deployed — processes, services, instances, shared resources]
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## External Dependencies
|
|
47
|
+
|
|
48
|
+
| Dependency | Purpose | Critical? | Failure mode |
|
|
49
|
+
|---|---|---|---|
|
|
50
|
+
| [service] | [what it does] | [yes / no] | [what happens if it fails] |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Technology Choices
|
|
55
|
+
|
|
56
|
+
| Area | Choice | Rationale |
|
|
57
|
+
|---|---|---|
|
|
58
|
+
| [area] | [choice] | [why] |
|
|
59
|
+
| [area] | [choice] | [why] |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Architecture Decisions
|
|
64
|
+
|
|
65
|
+
[Link to `docs/architecture/decisions/` or list ADRs]
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Gaps and Risks
|
|
70
|
+
|
|
71
|
+
| Gap | Severity | Recommendation |
|
|
72
|
+
|---|---|---|
|
|
73
|
+
| [gap] | [low / medium / high] | [recommendation] |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Review History
|
|
78
|
+
|
|
79
|
+
| Date | Reviewer | Notes |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| [date] | [reviewer] | [notes] |
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Business Requirements
|
|
2
|
+
|
|
3
|
+
**Project:** [name]
|
|
4
|
+
**Date:** [YYYY-MM-DD]
|
|
5
|
+
**Author:** [who wrote this]
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Business Model
|
|
10
|
+
|
|
11
|
+
[How this project creates or captures value]
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Actors
|
|
16
|
+
|
|
17
|
+
| Actor | Type | Can Do | Can See | Cannot Do |
|
|
18
|
+
|---|---|---|---|---|
|
|
19
|
+
| [name] | [type] | [actions] | [data] | [restricted] |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Business Entities
|
|
24
|
+
|
|
25
|
+
| Entity | Description | Key Data | Owner | Lifecycle |
|
|
26
|
+
|---|---|---|---|---|
|
|
27
|
+
| [name] | [what it represents] | [key fields] | [who owns it] | [lifecycle] |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Business Processes
|
|
32
|
+
|
|
33
|
+
### [Process Name]
|
|
34
|
+
|
|
35
|
+
**Actor:** [who initiates]
|
|
36
|
+
**Steps:**
|
|
37
|
+
1. [step]
|
|
38
|
+
2. [step]
|
|
39
|
+
**End state:** [final state]
|
|
40
|
+
**Failure handling:** [what happens on failure]
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Business Rules
|
|
45
|
+
|
|
46
|
+
### [BR-XXX] — [Rule Name]
|
|
47
|
+
|
|
48
|
+
**Category:** [authorization | validation | pricing | state | access | compliance | integrity]
|
|
49
|
+
**Rule:** [description]
|
|
50
|
+
**Condition:** [when it applies]
|
|
51
|
+
**Outcome:** [what happens]
|
|
52
|
+
**Exception:** [exceptions]
|
|
53
|
+
**Invariant:** [what must never happen]
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## State Machines
|
|
58
|
+
|
|
59
|
+
### [Entity] Lifecycle
|
|
60
|
+
|
|
61
|
+
**States:** [list]
|
|
62
|
+
**Transitions:**
|
|
63
|
+
- [state A] → [state B]: [trigger], [validation], [side effects]
|
|
64
|
+
**Terminal states:** [list]
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Pricing (if applicable)
|
|
69
|
+
|
|
70
|
+
[How pricing works. Where is the single source of truth?]
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Edge Cases
|
|
75
|
+
|
|
76
|
+
- [scenario]: [how it is handled]
|
|
77
|
+
- [scenario]: [how it is handled]
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|
6
|
+
|
|
7
|
+
## [Version] — [Date]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- [what was added]
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- [what was changed]
|
|
16
|
+
|
|
17
|
+
### Deprecated
|
|
18
|
+
|
|
19
|
+
- [what is deprecated]
|
|
20
|
+
|
|
21
|
+
### Removed
|
|
22
|
+
|
|
23
|
+
- [what was removed]
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- [what was fixed]
|
|
28
|
+
|
|
29
|
+
### Security
|
|
30
|
+
|
|
31
|
+
- [security-relevant changes]
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## [Version] — [Date]
|
|
36
|
+
|
|
37
|
+
[Repeat structure]
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Database
|
|
2
|
+
|
|
3
|
+
**Project:** [name]
|
|
4
|
+
**Date:** [YYYY-MM-DD]
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Database Engine
|
|
9
|
+
|
|
10
|
+
- **Primary:** [PostgreSQL / MySQL / SQLite / MongoDB / etc.]
|
|
11
|
+
- **Version:** [if known]
|
|
12
|
+
- **Connection:** [how the application connects — env vars, config, connection pool]
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Schema Overview
|
|
17
|
+
|
|
18
|
+
[Link to migrations or schema dump, or describe the schema structure]
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Migrations
|
|
23
|
+
|
|
24
|
+
- **System:** [ migrations / flyway / alembic / prisma / artisan / rails / or "none" ]
|
|
25
|
+
- **Location:** [path]
|
|
26
|
+
- **Process:** [how migrations are run — manually, CI, on deploy]
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## ORM / Query Builder
|
|
31
|
+
|
|
32
|
+
- **Tool:** [Eloquent / ActiveRecord / Prisma / SQLAlchemy / SQLx / raw SQL / or "none"]
|
|
33
|
+
- **Pattern:** [how the project uses it]
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Data Model
|
|
38
|
+
|
|
39
|
+
### [Table / Collection Name]
|
|
40
|
+
|
|
41
|
+
**Purpose:** [what this table represents]
|
|
42
|
+
**Columns / Fields:**
|
|
43
|
+
- [name]: [type], [constraints], [description]
|
|
44
|
+
**Relationships:**
|
|
45
|
+
- [relation]: [type], [description]
|
|
46
|
+
**Indexes:** [if notable]
|
|
47
|
+
**Notes:** [any special considerations]
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Data Integrity
|
|
52
|
+
|
|
53
|
+
- [constraint or rule]: [description]
|
|
54
|
+
- [constraint or rule]: [description]
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Sensitive Data
|
|
59
|
+
|
|
60
|
+
- [data type]: [how it is protected — encryption, access control, retention]
|
|
61
|
+
- [data type]: [how it is protected]
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Backups
|
|
66
|
+
|
|
67
|
+
- **Strategy:** [description or "not defined"]
|
|
68
|
+
- **Frequency:** [if known]
|
|
69
|
+
- **Retention:** [if known]
|
|
70
|
+
- **Restore tested:** [yes / no / unknown]
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Data Retention and Deletion
|
|
75
|
+
|
|
76
|
+
- [policy or "not defined"]
|
|
77
|
+
- [policy or "not defined"]
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Deployment
|
|
2
|
+
|
|
3
|
+
**Project:** [name]
|
|
4
|
+
**Date:** [YYYY-MM-DD]
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Deployment Model
|
|
9
|
+
|
|
10
|
+
- **Type:** [manual / CI/CD / platform-managed / or "mixed"]
|
|
11
|
+
- **Platform:** [Vercel / AWS / GCP / Azure / VPS / Docker / Kubernetes / or "unknown"]
|
|
12
|
+
- **Environments:** [production, staging, development — describe each]
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Build Process
|
|
17
|
+
|
|
18
|
+
[How the project is built — commands, steps, artifacts]
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Deployment Process
|
|
23
|
+
|
|
24
|
+
[How the project is deployed — steps, triggers, approvals]
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Rollback
|
|
29
|
+
|
|
30
|
+
- **Strategy:** [how to roll back — redeploy previous version, database rollback, or "not defined"]
|
|
31
|
+
- **Tested:** [yes / no / unknown]
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Environment Configuration
|
|
36
|
+
|
|
37
|
+
- **Configuration method:** [.env / config files / secrets manager / or "mixed"]
|
|
38
|
+
- **Secrets management:** [how secrets are managed]
|
|
39
|
+
- **Environment-specific settings:** [what differs between environments]
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## CI/CD
|
|
44
|
+
|
|
45
|
+
- **System:** [GitHub Actions / GitLab CI / CircleCI / Jenkins / or "none"]
|
|
46
|
+
- **Pipeline stages:** [list stages — build, test, deploy, or "not configured"]
|
|
47
|
+
- **Triggers:** [what triggers a deployment]
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Health Checks and Monitoring
|
|
52
|
+
|
|
53
|
+
- **Health checks:** [Liveness / readiness / or "not configured"]
|
|
54
|
+
- **Monitoring:** [what is monitored — uptime, errors, performance, or "not configured"]
|
|
55
|
+
- **Alerting:** [who gets alerted and when]
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Scaling
|
|
60
|
+
|
|
61
|
+
- **Current scale:** [how the project runs today]
|
|
62
|
+
- **Scaling strategy:** [manual / auto-scaling / or "not defined"]
|
|
63
|
+
- **Bottlenecks:** [known scaling limits]
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Disaster Recovery
|
|
68
|
+
|
|
69
|
+
- **Strategy:** [description or "not defined"]
|
|
70
|
+
- **Backup:** [what is backed up and how often]
|
|
71
|
+
- **Restore tested:** [yes / no / unknown]
|
|
72
|
+
- **RTO / RPO:** [if defined]
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Review History
|
|
77
|
+
|
|
78
|
+
| Date | Reviewer | Notes |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| [date] | [reviewer] | [notes] |
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Project Brief
|
|
2
|
+
|
|
3
|
+
**Project:** [name]
|
|
4
|
+
**Date:** [YYYY-MM-DD]
|
|
5
|
+
**Author:** [who wrote this]
|
|
6
|
+
**Status:** [draft | in review | approved]
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
What is this project?
|
|
13
|
+
|
|
14
|
+
[2-3 sentences. What does it do? Who is it for? Why does it exist?]
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Goals
|
|
19
|
+
|
|
20
|
+
- [goal]
|
|
21
|
+
- [goal]
|
|
22
|
+
- [goal]
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Non-Goals
|
|
27
|
+
|
|
28
|
+
- [what is explicitly out of scope]
|
|
29
|
+
- [what is explicitly out of scope]
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Target Users
|
|
34
|
+
|
|
35
|
+
- [user type]: [description]
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Core Capabilities
|
|
40
|
+
|
|
41
|
+
- [capability]: [brief description]
|
|
42
|
+
- [capability]: [brief description]
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Constraints
|
|
47
|
+
|
|
48
|
+
- [constraint]: [description]
|
|
49
|
+
- [constraint]: [description]
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Technology (known or chosen)
|
|
54
|
+
|
|
55
|
+
- [language / framework / database / infrastructure]
|
|
56
|
+
- [or "not yet decided"]
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Success Criteria
|
|
61
|
+
|
|
62
|
+
How will we know this project is successful?
|
|
63
|
+
|
|
64
|
+
- [measurable criterion]
|
|
65
|
+
- [measurable criterion]
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Open Questions
|
|
70
|
+
|
|
71
|
+
- [question]
|
|
72
|
+
- [question]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Runbook: [Title]
|
|
2
|
+
|
|
3
|
+
**Project:** [name]
|
|
4
|
+
**Date:** [YYYY-MM-DD]
|
|
5
|
+
**Owner:** [who owns this]
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
[What this runbook covers and when to use it]
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
|
|
17
|
+
- [access needed]
|
|
18
|
+
- [tools needed]
|
|
19
|
+
- [permissions needed]
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Procedures
|
|
24
|
+
|
|
25
|
+
### [Scenario / Task]
|
|
26
|
+
|
|
27
|
+
**When:** [when this procedure applies]
|
|
28
|
+
**Steps:**
|
|
29
|
+
1. [step]
|
|
30
|
+
2. [step]
|
|
31
|
+
**Expected outcome:** [what should happen]
|
|
32
|
+
**If it fails:** [what to do]
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### [Scenario / Task]
|
|
37
|
+
|
|
38
|
+
[Same structure]
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Common Issues
|
|
43
|
+
|
|
44
|
+
| Symptom | Cause | Resolution |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| [symptom] | [cause] | [resolution] |
|
|
47
|
+
| [symptom] | [cause] | [resolution] |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Contacts
|
|
52
|
+
|
|
53
|
+
- [role]: [contact]
|
|
54
|
+
- [role]: [contact]
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Security
|
|
2
|
+
|
|
3
|
+
**Project:** [name]
|
|
4
|
+
**Date:** [YYYY-MM-DD]
|
|
5
|
+
**Last reviewed:** [YYYY-MM-DD]
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Attack Surface
|
|
10
|
+
|
|
11
|
+
[What is exposed to the internet, to users, to third parties]
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Authentication
|
|
16
|
+
|
|
17
|
+
- **Mechanism:** [how users authenticate]
|
|
18
|
+
- **Session management:** [how sessions are managed]
|
|
19
|
+
- **Password storage:** [how passwords are stored — should be hashed]
|
|
20
|
+
- **MFA:** [available or not]
|
|
21
|
+
- **Admin authentication:** [how admin access is protected]
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Authorization
|
|
26
|
+
|
|
27
|
+
- **Model:** [RBAC / ABAC / custom / or "not formalized"]
|
|
28
|
+
- **Enforcement:** [where authorization is checked — on every endpoint, some endpoints, or unclear]
|
|
29
|
+
- **Access control review:** [when access control was last reviewed]
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Data Protection
|
|
34
|
+
|
|
35
|
+
- **In transit:** [TLS / HTTPS / or "not confirmed"]
|
|
36
|
+
- **At rest:** [encryption / or "not confirmed"]
|
|
37
|
+
- **Secrets management:** [env vars / secrets manager / or "issue — hardcoded"]
|
|
38
|
+
- **PII handling:** [how PII is handled and protected]
|
|
39
|
+
- **Data minimization:** [are we collecting only what we need?]
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Input Validation
|
|
44
|
+
|
|
45
|
+
- **Client-side:** [what client-side validation exists]
|
|
46
|
+
- **Server-side:** [what server-side validation exists — must exist for all sensitive inputs]
|
|
47
|
+
- **SQL injection protection:** [parameterized queries / ORM / or "needs review"]
|
|
48
|
+
- **Output encoding:** [context-appropriate encoding]
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Dependencies
|
|
53
|
+
|
|
54
|
+
- **Review cadence:** [how often dependencies are reviewed]
|
|
55
|
+
- **Known vulnerabilities:** [any known issues, or "none known"]
|
|
56
|
+
- **Lockfile:** [committed or not]
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Logging and Monitoring
|
|
61
|
+
|
|
62
|
+
- **Security events logged:** [what is logged]
|
|
63
|
+
- **Sensitive data in logs:** [are logs free of passwords, tokens, PII?]
|
|
64
|
+
- **Alerting:** [is there alerting for suspicious activity?]
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Infrastructure Security
|
|
69
|
+
|
|
70
|
+
- **Container security:** [run as non-root / or "unknown"]
|
|
71
|
+
- **Network:** [security groups / firewalls / or "not reviewed"]
|
|
72
|
+
- **TLS configuration:** [if known]
|
|
73
|
+
- **Exposed services:** [list of internet-exposed services]
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Business Logic Security
|
|
78
|
+
|
|
79
|
+
[Known business logic security concerns — pricing manipulation, workflow bypass, race conditions, etc.]
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Findings
|
|
84
|
+
|
|
85
|
+
[Security findings from reviews and audits]
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Review History
|
|
90
|
+
|
|
91
|
+
| Date | Reviewer | Notes |
|
|
92
|
+
|---|---|---|
|
|
93
|
+
| [date] | [reviewer] | [notes] |
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Testing
|
|
2
|
+
|
|
3
|
+
**Project:** [name]
|
|
4
|
+
**Date:** [YYYY-MM-DD]
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Current State
|
|
9
|
+
|
|
10
|
+
- **Tests exist:** [yes / no / partially]
|
|
11
|
+
- **Test framework:** [pytest / PHPUnit / Jest / RSpec / or "none"]
|
|
12
|
+
- **Test types in use:** [unit / integration / E2E / contract / or "none"]
|
|
13
|
+
- **CI integration:** [yes / no / partial]
|
|
14
|
+
- **Test reliability:** [stable / flaky / unknown]
|
|
15
|
+
- **Test execution time:** [if known]
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## What Is Tested
|
|
20
|
+
|
|
21
|
+
- [feature / flow / logic]: [test type]
|
|
22
|
+
- [feature / flow / logic]: [test type]
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## What Is Not Tested (Gaps)
|
|
27
|
+
|
|
28
|
+
- [gap]: [priority]
|
|
29
|
+
- [gap]: [priority]
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Testing Strategy
|
|
34
|
+
|
|
35
|
+
### Unit Tests
|
|
36
|
+
|
|
37
|
+
- **Scope:** [what unit tests cover]
|
|
38
|
+
- **Framework:** [if applicable]
|
|
39
|
+
- **Convention:** [how tests are written]
|
|
40
|
+
|
|
41
|
+
### Integration Tests
|
|
42
|
+
|
|
43
|
+
- **Scope:** [what integration tests cover]
|
|
44
|
+
- **Framework:** [if applicable]
|
|
45
|
+
- **Data handling:** [how test data and database are managed]
|
|
46
|
+
|
|
47
|
+
### End-to-End Tests
|
|
48
|
+
|
|
49
|
+
- **Scope:** [what E2E tests cover — critical user flows]
|
|
50
|
+
- **Framework:** [if applicable]
|
|
51
|
+
|
|
52
|
+
### Contract Tests
|
|
53
|
+
|
|
54
|
+
- **Scope:** [what contract tests cover — if applicable]
|
|
55
|
+
- **Framework:** [if applicable]
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Test Quality Standards
|
|
60
|
+
|
|
61
|
+
- Tests are deterministic.
|
|
62
|
+
- Tests assert meaningful behavior.
|
|
63
|
+
- Tests fail for the right reason.
|
|
64
|
+
- Tests are readable.
|
|
65
|
+
- Tests are maintained.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## CI
|
|
70
|
+
|
|
71
|
+
- **When tests run:** [on push, on PR, on merge, or "not configured"]
|
|
72
|
+
- **What happens on failure:** [blocked merge, notification, or "not configured"]
|
|
73
|
+
- **Coverage reporting:** [yes / no / unknown]
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Recommendations
|
|
78
|
+
|
|
79
|
+
[Any recommended improvements to the testing setup]
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Review History
|
|
84
|
+
|
|
85
|
+
| Date | Reviewer | Notes |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| [date] | [reviewer] | [notes] |
|