buildwright 0.0.5 → 0.0.7

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.
Files changed (41) hide show
  1. package/package.json +1 -1
  2. package/templates/.buildwright/agents/README.md +53 -0
  3. package/templates/.buildwright/agents/architect.md +143 -0
  4. package/templates/.buildwright/agents/security-engineer.md +193 -0
  5. package/templates/.buildwright/agents/staff-engineer.md +134 -0
  6. package/templates/.buildwright/claws/README.md +89 -0
  7. package/templates/.buildwright/claws/TEMPLATE.md +71 -0
  8. package/templates/.buildwright/claws/backend.md +114 -0
  9. package/templates/.buildwright/claws/database.md +120 -0
  10. package/templates/.buildwright/claws/devops.md +175 -0
  11. package/templates/.buildwright/claws/frontend.md +111 -0
  12. package/templates/.buildwright/commands/bw-analyse.md +86 -0
  13. package/templates/.buildwright/commands/bw-claw.md +332 -0
  14. package/templates/.buildwright/commands/bw-help.md +85 -0
  15. package/templates/.buildwright/commands/bw-new-feature.md +504 -0
  16. package/templates/.buildwright/commands/bw-quick.md +323 -0
  17. package/templates/.buildwright/commands/bw-ship.md +288 -0
  18. package/templates/.buildwright/commands/bw-verify.md +108 -0
  19. package/templates/.buildwright/steering/naming-conventions.md +40 -0
  20. package/templates/.buildwright/steering/product.md +16 -0
  21. package/templates/.buildwright/steering/quality-gates.md +35 -0
  22. package/templates/.buildwright/steering/tech.md +27 -0
  23. package/templates/.buildwright/tasks/TEMPLATE.md +79 -0
  24. package/templates/.env.example +11 -1
  25. package/templates/.github/workflows/quality-gates.yml +150 -0
  26. package/templates/BUILDWRIGHT.md +99 -1
  27. package/templates/CLAUDE.md +150 -1
  28. package/templates/Makefile +86 -1
  29. package/templates/docs/requirements/TEMPLATE.md +33 -0
  30. package/templates/scripts/bump-version.sh +33 -0
  31. package/templates/scripts/hooks/post-checkout +24 -0
  32. package/templates/scripts/hooks/post-merge +14 -0
  33. package/templates/scripts/hooks/pre-commit +14 -0
  34. package/templates/scripts/install-hooks.sh +35 -0
  35. package/templates/scripts/release.sh +38 -0
  36. package/templates/scripts/sync-agents.sh +294 -0
  37. package/templates/scripts/validate-skill.sh +156 -0
  38. package/templates/.buildwright +0 -1
  39. package/templates/.github +0 -1
  40. package/templates/docs +0 -1
  41. package/templates/scripts +0 -1
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: bw-verify
3
+ description: Run quick quality checks (typecheck, lint, test, build). For full checks including security and AI review, use /bw-ship.
4
+ ---
5
+
6
+ Running quick verification...
7
+
8
+ ## 1. Discover Project Commands
9
+
10
+ Follow the Tech Discovery Protocol (see Command Discovery in CLAUDE.md):
11
+
12
+ 1. Read `.buildwright/steering/tech.md` — if "Project Commands" has real commands, use them.
13
+ 2. Otherwise auto-detect from project files: `package.json`, `Cargo.toml`, `go.mod`, `pyproject.toml`, `Makefile`, etc.
14
+ 3. Derive typecheck, lint, test, build commands. Mark as SKIP if a stack has no equivalent.
15
+ 4. Write discovered commands to `tech.md` for future runs.
16
+
17
+ ---
18
+
19
+ ## 2. Type Check
20
+
21
+ Run DISCOVERED_TYPECHECK.
22
+
23
+ Examples by runtime (use only what was discovered — do not hardcode):
24
+ - Node/TypeScript: `npx tsc --noEmit` or the project's typecheck script
25
+ - Rust: `cargo check`
26
+ - Go: `go build ./...`
27
+ - Python: `mypy .` or `pyright`
28
+ - Other: SKIP if no type checker exists for this stack
29
+
30
+ **Result:** PASS / FAIL / SKIP
31
+ **Details:** [error count and locations if failed]
32
+
33
+ ---
34
+
35
+ ## 3. Lint
36
+
37
+ Run DISCOVERED_LINT.
38
+
39
+ Examples by runtime (use only what was discovered):
40
+ - Node/TypeScript: project lint script or `npx eslint .`
41
+ - Rust: `cargo clippy -- -D warnings`
42
+ - Go: `golangci-lint run`
43
+ - Python: `ruff check .` or `flake8`
44
+ - Other: SKIP if no linter configured
45
+
46
+ **Result:** PASS / FAIL / SKIP
47
+ **Details:** [warning/error count]
48
+
49
+ ---
50
+
51
+ ## 4. Tests
52
+
53
+ Run DISCOVERED_TEST.
54
+
55
+ Examples by runtime (use only what was discovered):
56
+ - Node/TypeScript: project test script or `npx jest`
57
+ - Rust: `cargo test`
58
+ - Go: `go test ./...`
59
+ - Python: `pytest`
60
+ - Other: consult Makefile or CI workflow
61
+
62
+ **Result:** PASS / FAIL
63
+ **Details:** [test count, coverage % if available]
64
+
65
+ ---
66
+
67
+ ## 5. Build
68
+
69
+ Run DISCOVERED_BUILD.
70
+
71
+ Examples by runtime (use only what was discovered):
72
+ - Node/TypeScript: project build script
73
+ - Rust: `cargo build --release`
74
+ - Go: `go build ./...`
75
+ - Python: SKIP — no build step for interpreted scripts
76
+ - Other: SKIP if this stack has no build step
77
+
78
+ **Result:** PASS / FAIL / SKIP
79
+ **Details:** [any warnings]
80
+
81
+ ---
82
+
83
+ ## Summary
84
+
85
+ ```
86
+ ╔═══════════════════════════════════════════════════════════════╗
87
+ ║ QUICK VERIFICATION ║
88
+ ╠═══════════════════════════════════════════════════════════════╣
89
+ ║ Stack detected: [runtime] ║
90
+ ║ Commands used: [list of commands actually run] ║
91
+ ╠═══════════════════════════════════════════════════════════════╣
92
+ ║ Type Check: ✅ PASS / ❌ FAIL / ⏭ SKIP ║
93
+ ║ Lint: ✅ PASS / ❌ FAIL / ⏭ SKIP ([N] warnings) ║
94
+ ║ Tests: ✅ PASS / ❌ FAIL ([N] tests, [X]% coverage) ║
95
+ ║ Build: ✅ PASS / ❌ FAIL / ⏭ SKIP ║
96
+ ╠═══════════════════════════════════════════════════════════════╣
97
+ ║ Status: PASS / BLOCKED ║
98
+ ╚═══════════════════════════════════════════════════════════════╝
99
+ ```
100
+
101
+ If BLOCKED: List specific failures with file:line references.
102
+
103
+ ---
104
+
105
+ ## Next Steps
106
+
107
+ - If PASS: Run `/bw-ship` for full quality pipeline (security + review + release)
108
+ - If BLOCKED: Fix issues and re-run `/bw-verify`
@@ -0,0 +1,40 @@
1
+ # Naming Conventions
2
+
3
+ Shared vocabulary across all agents and claws. When any agent adds a new field, endpoint, or concept, it MUST be registered here so all other agents derive their naming from this registry.
4
+
5
+ ## Layer-Specific Naming Rules
6
+
7
+ | Layer | Convention | Example |
8
+ |-------|-----------|---------|
9
+ | Database columns | `snake_case` | `photo_url`, `created_at` |
10
+ | API (JSON keys) | `camelCase` | `photoUrl`, `createdAt` |
11
+ | UI (JavaScript) | `camelCase` | `photoUrl`, `createdAt` |
12
+ | CSS classes | `kebab-case` | `photo-upload`, `member-card` |
13
+ | URL paths | `kebab-case` | `/api/team-members/:id/photo` |
14
+ | Environment vars | `SCREAMING_SNAKE` | `BUILDWRIGHT_AUTO_APPROVE` |
15
+ | File names | `kebab-case` | `photo-upload.tsx`, `team-members.ts` |
16
+
17
+ ## Canonical Field Registry
18
+
19
+ Register new fields here when they cross domain boundaries.
20
+
21
+ | Concept | Database | API (JSON) | UI (JS) | Notes |
22
+ |---------|----------|------------|---------|-------|
23
+ | — | `snake_case` | `camelCase` | `camelCase` | Convention |
24
+ <!-- Add new fields below this line -->
25
+
26
+ ## Canonical Endpoint Registry
27
+
28
+ Register new endpoints here when they're defined by the Architect.
29
+
30
+ | Purpose | Method | Path | Request Body | Response Body |
31
+ |---------|--------|------|-------------|--------------|
32
+ <!-- Add new endpoints below this line -->
33
+
34
+ ## Rules
35
+
36
+ 1. **Architect registers first** — Before spawning claws, the Architect adds new fields/endpoints to this file
37
+ 2. **Claws derive, never invent** — Each claw looks up naming from this registry, never creates its own
38
+ 3. **One source of truth** — If a name isn't here, ask the Architect before proceeding
39
+ 4. **No abbreviations** — Use `photo_url` not `pic_url`, `description` not `desc`
40
+ 5. **Consistent pluralization** — Collections are plural (`members`), single items are singular (`member`)
@@ -0,0 +1,16 @@
1
+ # Product Context
2
+
3
+ ## What We're Building
4
+ [Describe your product/project here]
5
+
6
+ ## Key Features
7
+ [List main features]
8
+
9
+ ## User Personas
10
+ [Describe target users]
11
+
12
+ ## Business Constraints
13
+ [Timeline, compliance, integrations]
14
+
15
+ ## Current Focus
16
+ [What's being worked on now]
@@ -0,0 +1,35 @@
1
+ # Quality Gates
2
+
3
+ These automated gates replace human code review. ALL must pass for merge.
4
+
5
+ ## Gate 1: Static Analysis
6
+ - [ ] Type check passes (zero errors)
7
+ - [ ] Lint passes (zero errors, warnings acceptable)
8
+ - [ ] No new lint warnings introduced
9
+
10
+ ## Gate 2: Tests
11
+ - [ ] All existing tests pass
12
+ - [ ] New code has tests
13
+ - [ ] Coverage does not decrease
14
+ - [ ] Critical paths have >80% coverage
15
+
16
+ ## Gate 3: Security
17
+ - [ ] No high/critical vulnerabilities in dependencies
18
+ - [ ] No secrets in code
19
+ - [ ] SAST scan passes (if configured)
20
+
21
+ ## Gate 4: Build
22
+ - [ ] Production build succeeds
23
+ - [ ] No build warnings
24
+
25
+ ## Gate 5: AI Review (Optional)
26
+ - [ ] No blocking issues from AI reviewer
27
+
28
+ ## Financial/Trading Code (Additional)
29
+ - [ ] No floating-point for currency
30
+ - [ ] All inputs validated
31
+ - [ ] Rate limiting on sensitive endpoints
32
+ - [ ] Audit logging for transactions
33
+
34
+ ## Auto-Merge Criteria
35
+ When ALL gates pass → PR auto-merges → Deploy triggers
@@ -0,0 +1,27 @@
1
+ # Technical Context
2
+
3
+ ## Stack
4
+ [List your tech stack]
5
+
6
+ ## Project Commands
7
+
8
+ Fill in these slots with your project's actual commands. If left empty, Buildwright
9
+ auto-detects from project files (package.json, Cargo.toml, go.mod, pyproject.toml,
10
+ Makefile) and populates this section on the first run.
11
+
12
+ ```
13
+ typecheck: [command] # Examples: npx tsc --noEmit | cargo check | go build ./... | mypy .
14
+ lint: [command] # Examples: npx eslint . | cargo clippy | golangci-lint run | ruff check .
15
+ test: [command] # Examples: npm test | cargo test | go test ./... | pytest
16
+ build: [command] # Examples: npm run build | cargo build --release | go build ./...
17
+ dev: [command] # Examples: npm run dev | cargo run | go run ./... | uvicorn app:main
18
+ ```
19
+
20
+ ## Architecture
21
+ [High-level architecture notes]
22
+
23
+ ## Code Patterns
24
+ [Patterns used in this codebase]
25
+
26
+ ## Dependencies
27
+ [Key dependencies and why]
@@ -0,0 +1,79 @@
1
+ # Task: [Feature Name]
2
+
3
+ ## Quick Reference
4
+ - **Status**: DRAFTING | SPEC_REVIEW | IMPLEMENTING | CODE_REVIEW | COMPLETE | BLOCKED
5
+ - **Branch**: feature/[name]
6
+ - **Spec**: docs/specs/[name]/spec.md
7
+ - **Current Owner**: [agent-role or "unassigned"]
8
+
9
+ ---
10
+
11
+ ## Status: DRAFTING
12
+
13
+ ## Branch: feature/[name]
14
+
15
+ ## Current Owner: unassigned
16
+
17
+ ---
18
+
19
+ ## Phases
20
+
21
+ ### Phase 1: Specification
22
+ | Field | Value |
23
+ |-------|-------|
24
+ | Owner | architect-agent |
25
+ | Status | ⏳ PENDING |
26
+ | Output | docs/specs/[name]/spec.md |
27
+ | Started | - |
28
+ | Completed | - |
29
+
30
+ ### Phase 2: Implementation
31
+ | Field | Value |
32
+ |-------|-------|
33
+ | Owner | implementer-agent |
34
+ | Status | ⏳ WAITING |
35
+ | Branch | feature/[name] |
36
+ | Started | - |
37
+ | Completed | - |
38
+
39
+ **Milestones**:
40
+ - [ ] Milestone 1: [description]
41
+ - [ ] Milestone 2: [description]
42
+ - [ ] Milestone 3: [description]
43
+
44
+ ### Phase 3: Review & Ship
45
+ | Field | Value |
46
+ |-------|-------|
47
+ | Owner | reviewer-agent |
48
+ | Status | ⏳ WAITING |
49
+ | PR | - |
50
+ | Started | - |
51
+ | Completed | - |
52
+
53
+ ---
54
+
55
+ ## Context for Next Agent
56
+
57
+ ### Decisions Made
58
+ -
59
+
60
+ ### Key Files Modified
61
+ -
62
+
63
+ ### Known Issues / TODOs
64
+ -
65
+
66
+ ### Test Commands
67
+ ```bash
68
+ npm run test
69
+ ```
70
+
71
+ ---
72
+
73
+ ## Blockers
74
+ None currently.
75
+
76
+ ---
77
+
78
+ ## Communication Log
79
+ - [timestamp] [agent]: Starting work
@@ -1 +1,11 @@
1
- ../../.env.example
1
+ # Buildwright Environment Variables
2
+ # Copy to .env or export in your shell: source .env.example
3
+
4
+ # Autonomous mode — skip human approval, fail gracefully on errors
5
+ # true (default): Pipeline runs fully autonomous. Failures commit + push + create failed PR + exit(1).
6
+ # false: Pipeline stops on failure and waits for human input.
7
+ BUILDWRIGHT_AUTO_APPROVE=true
8
+
9
+ # Number of verify retries (typecheck, lint, test, build) before giving up
10
+ # Default: 2
11
+ BUILDWRIGHT_AGENT_RETRIES=2
@@ -0,0 +1,150 @@
1
+ name: Quality Gates
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [main, master]
6
+ push:
7
+ branches: [main, master]
8
+
9
+ jobs:
10
+ quality:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ # Verify sync script runs without errors (catches broken scripts or missing deps)
16
+ - name: Verify sync script
17
+ run: make sync
18
+
19
+ # Detect package manager and project type
20
+ - name: Detect project type
21
+ id: detect
22
+ run: |
23
+ if [ -f "package.json" ]; then
24
+ echo "type=node" >> $GITHUB_OUTPUT
25
+ if [ -f "pnpm-lock.yaml" ]; then
26
+ echo "pm=pnpm" >> $GITHUB_OUTPUT
27
+ elif [ -f "yarn.lock" ]; then
28
+ echo "pm=yarn" >> $GITHUB_OUTPUT
29
+ elif [ -f "bun.lockb" ]; then
30
+ echo "pm=bun" >> $GITHUB_OUTPUT
31
+ else
32
+ echo "pm=npm" >> $GITHUB_OUTPUT
33
+ fi
34
+ elif [ -f "Cargo.toml" ]; then
35
+ echo "type=rust" >> $GITHUB_OUTPUT
36
+ elif [ -f "go.mod" ]; then
37
+ echo "type=go" >> $GITHUB_OUTPUT
38
+ elif [ -f "pyproject.toml" ] || [ -f "setup.py" ]; then
39
+ echo "type=python" >> $GITHUB_OUTPUT
40
+ fi
41
+
42
+ # Node.js setup
43
+ - name: Setup Node.js
44
+ if: steps.detect.outputs.type == 'node'
45
+ uses: actions/setup-node@v4
46
+ with:
47
+ node-version: '20'
48
+
49
+ - name: Setup pnpm
50
+ if: steps.detect.outputs.pm == 'pnpm'
51
+ uses: pnpm/action-setup@v2
52
+ with:
53
+ version: 8
54
+
55
+ - name: Install dependencies (Node)
56
+ if: steps.detect.outputs.type == 'node'
57
+ run: |
58
+ case "${{ steps.detect.outputs.pm }}" in
59
+ pnpm) pnpm install --frozen-lockfile ;;
60
+ yarn) yarn install --frozen-lockfile ;;
61
+ bun) bun install ;;
62
+ *) npm ci ;;
63
+ esac
64
+
65
+ # Rust setup
66
+ - name: Setup Rust
67
+ if: steps.detect.outputs.type == 'rust'
68
+ uses: dtolnay/rust-toolchain@stable
69
+ with:
70
+ components: clippy
71
+
72
+ # Go setup
73
+ - name: Setup Go
74
+ if: steps.detect.outputs.type == 'go'
75
+ uses: actions/setup-go@v5
76
+ with:
77
+ go-version: '1.21'
78
+
79
+ # Python setup
80
+ - name: Setup Python
81
+ if: steps.detect.outputs.type == 'python'
82
+ uses: actions/setup-python@v5
83
+ with:
84
+ python-version: '3.11'
85
+
86
+ - name: Install dependencies (Python)
87
+ if: steps.detect.outputs.type == 'python'
88
+ run: |
89
+ pip install -e ".[dev]" || pip install -r requirements.txt
90
+
91
+ # Quality checks
92
+ - name: Type Check
93
+ run: |
94
+ case "${{ steps.detect.outputs.type }}" in
95
+ node) ${{ steps.detect.outputs.pm }} run typecheck || npx tsc --noEmit ;;
96
+ rust) cargo check ;;
97
+ go) go build ./... ;;
98
+ python) mypy . || pyright || echo "No type checker configured" ;;
99
+ esac
100
+
101
+ - name: Lint
102
+ run: |
103
+ case "${{ steps.detect.outputs.type }}" in
104
+ node) ${{ steps.detect.outputs.pm }} run lint || npx eslint . ;;
105
+ rust) cargo clippy -- -D warnings ;;
106
+ go) golangci-lint run || echo "golangci-lint not installed" ;;
107
+ python) ruff check . || flake8 ;;
108
+ esac
109
+
110
+ - name: Test
111
+ run: |
112
+ case "${{ steps.detect.outputs.type }}" in
113
+ node) ${{ steps.detect.outputs.pm }} test ;;
114
+ rust) cargo test ;;
115
+ go) go test ./... ;;
116
+ python) pytest ;;
117
+ esac
118
+
119
+ - name: Build
120
+ run: |
121
+ case "${{ steps.detect.outputs.type }}" in
122
+ node) ${{ steps.detect.outputs.pm }} run build ;;
123
+ rust) cargo build --release ;;
124
+ go) go build ./... ;;
125
+ python) echo "No build step" ;;
126
+ esac
127
+
128
+ - name: Security Audit
129
+ run: |
130
+ case "${{ steps.detect.outputs.type }}" in
131
+ node) ${{ steps.detect.outputs.pm }} audit --audit-level=high || true ;;
132
+ rust) cargo audit || echo "cargo-audit not installed" ;;
133
+ go) govulncheck ./... || echo "govulncheck not installed" ;;
134
+ python) pip-audit || safety check || echo "No Python audit tool" ;;
135
+ esac
136
+
137
+ auto-merge:
138
+ needs: quality
139
+ runs-on: ubuntu-latest
140
+ if: github.event_name == 'pull_request'
141
+ permissions:
142
+ contents: write
143
+ pull-requests: write
144
+ steps:
145
+ - name: Auto-merge on quality pass
146
+ uses: pascalgn/automerge-action@v0.15.6
147
+ env:
148
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
149
+ MERGE_METHOD: squash
150
+ MERGE_LABELS: ""
@@ -1 +1,99 @@
1
- ../../BUILDWRIGHT.md
1
+ # Buildwright Development Workflow
2
+
3
+ This project uses agent-first autonomous development. See [README.md](README.md) for full setup, concepts, and workflow details.
4
+
5
+ ## Quick Start
6
+
7
+ ```bash
8
+ # After cloning, generate tool-specific configs from .buildwright/
9
+ make sync
10
+
11
+ # Install git hooks to auto-sync on .buildwright/ changes
12
+ make install-hooks
13
+
14
+ # Start your agent tool
15
+ claude
16
+ ```
17
+
18
+ ## Commands
19
+
20
+ | Command | Purpose |
21
+ |---------|---------|
22
+ | `/bw-new-feature` | Full pipeline: research → spec → approve → build → ship |
23
+ | `/bw-quick` | Fast path for bug fixes, small tasks |
24
+ | `/bw-claw` | Cross-domain features: Architect decomposes → claws execute per domain → integrate → ship |
25
+ | `/bw-ship` | Quality gates + release: verify → security → review → push → PR |
26
+ | `/bw-verify` | Quick checks: typecheck, lint, test, build |
27
+ | `/bw-analyse` | Analyse existing codebase → write structured docs to `.buildwright/codebase/` → update tech.md |
28
+ | `/bw-help` | Show available commands |
29
+
30
+ ## Environment Variables
31
+
32
+ | Variable | Default | Required | Purpose |
33
+ |----------|---------|----------|---------|
34
+ | `GITHUB_TOKEN` | — | Yes | Push branches and open PRs via `gh`. Needs `repo` scope. |
35
+ | `BUILDWRIGHT_AUTO_APPROVE` | `true` | No | Autonomous mode — skip human approval, fail gracefully on errors |
36
+ | `BUILDWRIGHT_AGENT_RETRIES` | `2` | No | Number of verify retries before giving up |
37
+
38
+ ## Failure Behavior
39
+
40
+ | Mode | Any Failure | Behavior |
41
+ |------|-------------|----------|
42
+ | Autonomous (`BUILDWRIGHT_AUTO_APPROVE=true`, default) | Commit + push + failed PR + exit(1) | CI/CD fails, PR shows failure details |
43
+ | Interactive (`BUILDWRIGHT_AUTO_APPROVE=false`) | STOP, show error | Human fixes in-session |
44
+
45
+ **Autonomous failure path** (verify retries exhausted / critical security / review blocked):
46
+ 1. Commit all completed work to feature branch
47
+ 2. Push branch
48
+ 3. Create PR with failure summary (see template below)
49
+ 4. Exit with error code (pipeline fails in CI/CD)
50
+
51
+ **Interactive failure path**: STOP and report blocker.
52
+
53
+ ### PR Failure Summary Template
54
+
55
+ ```markdown
56
+ ## BUILDWRIGHT: Pipeline Failed
57
+
58
+ **Feature:** [name]
59
+ **Mode:** Autonomous
60
+ **Failed at:** [Verify / Security / Review]
61
+ **Reason:** [Retries exhausted / Critical vulnerability / Changes requested]
62
+
63
+ ### Pipeline Status
64
+ | Step | Status | Details |
65
+ |------|--------|---------|
66
+ | Verify | [pass/fail] | [details] |
67
+ | Security | [pass/fail/skipped] | [details] |
68
+ | Review | [pass/fail/skipped] | [details] |
69
+
70
+ ### Completed Work
71
+ - [list of completed milestones/steps]
72
+
73
+ ### Failure Details
74
+ - [error summary, specific findings, or review feedback]
75
+
76
+ ### Skipped
77
+ - [steps that were blocked by the failure]
78
+
79
+ ### To Resume
80
+ Fix the issue on this branch, then re-run the relevant command.
81
+ ```
82
+
83
+ ## Severity Triage
84
+
85
+ | Severity | Action | Example |
86
+ |----------|--------|---------|
87
+ | **Critical / High** | Block — must fix before merge | SQL injection, exposed secrets, auth bypass |
88
+ | **Medium** | Fix in this PR if feasible, otherwise track | Missing rate limiting, verbose error messages |
89
+ | **Low / Info** | Advisory — log and move on | Minor header hardening, informational findings |
90
+
91
+ Only Critical/High findings block the pipeline. Medium and Low findings are reported but don't prevent shipping.
92
+
93
+ ## Agent Personas
94
+
95
+ | Agent | File | Purpose |
96
+ |-------|------|---------|
97
+ | Staff Engineer | `.buildwright/agents/staff-engineer.md` | Spec & code review, confidence scoring (≥80) |
98
+ | Security Engineer | `.buildwright/agents/security-engineer.md` | Security review, exploit scenarios, hard exclusions |
99
+ | Architect | `.buildwright/agents/architect.md` | Claw Architecture — decomposes cross-domain features |