11 changed files with 566 additions and 0 deletions
@ -0,0 +1,54 @@ |
|||||
|
<!-- crag:auto-start --> |
||||
|
# Amazon Q Rules — fastapi |
||||
|
|
||||
|
> Generated from governance.md by crag. Regenerate: `crag compile --target amazonq` |
||||
|
|
||||
|
## About |
||||
|
|
||||
|
(No description) |
||||
|
|
||||
|
**Stack:** python |
||||
|
|
||||
|
**Runtimes detected:** python |
||||
|
|
||||
|
## How Amazon Q Should Behave on This Project |
||||
|
|
||||
|
### Code Generation |
||||
|
|
||||
|
1. **Run governance gates before suggesting commits.** The gates below define the quality bar. |
||||
|
2. **Respect classifications:** MANDATORY (default) blocks on failure; OPTIONAL warns; ADVISORY is informational only. |
||||
|
3. **Respect scopes:** Path-scoped gates run from that directory. Conditional gates skip when their file does not exist. |
||||
|
4. **No secrets.** - No hardcoded secrets — grep for sk_live, AKIA, password= before commit |
||||
|
5. **Minimal diffs.** Prefer editing existing code over creating new files. Do not refactor unrelated areas. |
||||
|
|
||||
|
### Quality Gates |
||||
|
|
||||
|
- `uv run mypy .` |
||||
|
- `uv run pytest` |
||||
|
- `python -m build` |
||||
|
- `python -m build --sdist` |
||||
|
- `uv run --no-sync bash scripts/test-cov.sh` |
||||
|
- `uv run --no-sync pytest tests/benchmarks --codspeed` |
||||
|
- `uv run coverage combine coverage` |
||||
|
- `uv run coverage html --title "Coverage for ${{ github.sha }}"` |
||||
|
- `uv run coverage report --fail-under=100` |
||||
|
|
||||
|
### Commit Style |
||||
|
|
||||
|
Follow project commit conventions. |
||||
|
|
||||
|
### Boundaries |
||||
|
|
||||
|
- All file operations must stay within this repository. |
||||
|
- No destructive shell commands (rm -rf above repo root, DROP TABLE without confirmation, force-push to main). |
||||
|
- No new dependencies without an explicit reason. |
||||
|
|
||||
|
## Authoritative Source |
||||
|
|
||||
|
When these instructions seem to conflict with something in the repo, **`.claude/governance.md` is the source of truth**. This file is a compiled view. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
**Tool:** crag — https://www.npmjs.com/package/@whitehatd/crag |
||||
|
|
||||
|
<!-- crag:auto-end --> |
||||
@ -0,0 +1,63 @@ |
|||||
|
# Governance — fastapi |
||||
|
# Inferred by crag analyze — review and adjust as needed |
||||
|
|
||||
|
## Identity |
||||
|
- Project: fastapi |
||||
|
- Stack: python |
||||
|
|
||||
|
## Gates (run in order, stop on failure) |
||||
|
### Lint |
||||
|
- uv run mypy . |
||||
|
|
||||
|
### Test |
||||
|
- uv run pytest |
||||
|
|
||||
|
### Build |
||||
|
- python -m build |
||||
|
|
||||
|
### CI (inferred from workflow) |
||||
|
- python -m build --sdist |
||||
|
- uv run --no-sync bash scripts/test-cov.sh |
||||
|
- uv run --no-sync pytest tests/benchmarks --codspeed |
||||
|
- uv run coverage combine coverage |
||||
|
- uv run coverage html --title "Coverage for ${{ github.sha }}" |
||||
|
- uv run coverage report --fail-under=100 |
||||
|
|
||||
|
## Advisories (informational, not enforced) |
||||
|
- actionlint # [ADVISORY] |
||||
|
|
||||
|
## Branch Strategy |
||||
|
- Trunk-based development |
||||
|
- Free-form commits |
||||
|
- Commit trailer: Co-Authored-By: Claude <noreply@anthropic.com> |
||||
|
|
||||
|
## Security |
||||
|
- No hardcoded secrets — grep for sk_live, AKIA, password= before commit |
||||
|
|
||||
|
## Autonomy |
||||
|
- Auto-commit after gates pass |
||||
|
|
||||
|
## Architecture |
||||
|
- Type: monolith |
||||
|
|
||||
|
## Key Directories |
||||
|
- `.github/` — CI/CD |
||||
|
- `docs/` — documentation |
||||
|
- `scripts/` — tooling |
||||
|
- `tests/` — tests |
||||
|
|
||||
|
## Testing |
||||
|
- Framework: pytest |
||||
|
- Layout: flat |
||||
|
- Naming: test_*.py |
||||
|
|
||||
|
## Dependencies |
||||
|
- Package manager: uv (uv.lock) |
||||
|
|
||||
|
## Anti-Patterns |
||||
|
|
||||
|
Do not: |
||||
|
- Do not catch bare `Exception` — catch specific exceptions |
||||
|
- Do not use mutable default arguments (e.g., `def f(x=[])`) |
||||
|
- Do not use `import *` — use explicit imports |
||||
|
|
||||
@ -0,0 +1,53 @@ |
|||||
|
<!-- crag:auto-start --> |
||||
|
# Cline Rules — fastapi |
||||
|
|
||||
|
Generated from governance.md by crag. Regenerate with: `crag compile --target cline` |
||||
|
|
||||
|
## About this project |
||||
|
|
||||
|
(No description) |
||||
|
|
||||
|
Stack: python |
||||
|
Runtimes: python |
||||
|
|
||||
|
## Mandatory behavior |
||||
|
|
||||
|
1. Read this file at the start of every session. Read `governance.md` for full context. |
||||
|
2. Run all mandatory quality gates before proposing a commit. |
||||
|
3. If a gate fails, attempt an automatic fix (lint/format) with bounded retry (max 2 attempts). If it still fails, escalate to the user. |
||||
|
4. Never modify files outside this repository. |
||||
|
5. Never run destructive system commands (rm -rf /, DROP TABLE, force-push to main, curl|bash). |
||||
|
6. Use conventional commits. |
||||
|
|
||||
|
## Quality gates |
||||
|
|
||||
|
Run these in order, stop on first MANDATORY failure: |
||||
|
|
||||
|
- uv run mypy . |
||||
|
- uv run pytest |
||||
|
- python -m build |
||||
|
- python -m build --sdist |
||||
|
- uv run --no-sync bash scripts/test-cov.sh |
||||
|
- uv run --no-sync pytest tests/benchmarks --codspeed |
||||
|
- uv run coverage combine coverage |
||||
|
- uv run coverage html --title "Coverage for ${{ github.sha }}" |
||||
|
- uv run coverage report --fail-under=100 |
||||
|
|
||||
|
## Security |
||||
|
|
||||
|
- No hardcoded secrets — grep for sk_live, AKIA, password= before commit |
||||
|
|
||||
|
## Workflow |
||||
|
|
||||
|
For every task: |
||||
|
1. Read the governance.md file first |
||||
|
2. Understand which files need to change |
||||
|
3. Make minimal, focused changes |
||||
|
4. Run all mandatory gates |
||||
|
5. Commit with a conventional commit message |
||||
|
|
||||
|
## Tool context |
||||
|
|
||||
|
This project uses **crag** — the governance engine for AI coding agents. https://www.npmjs.com/package/@whitehatd/crag |
||||
|
|
||||
|
<!-- crag:auto-end --> |
||||
@ -0,0 +1,51 @@ |
|||||
|
<!-- crag:auto-start --> |
||||
|
# Continue Rules — fastapi |
||||
|
|
||||
|
> Generated from governance.md by crag. Regenerate: `crag compile --target continue` |
||||
|
|
||||
|
|
||||
|
|
||||
|
## Project Context |
||||
|
|
||||
|
- **Stack:** python |
||||
|
- **Runtimes:** python |
||||
|
- **Governance source:** `.claude/governance.md` (single source of truth) |
||||
|
|
||||
|
## Coding Rules |
||||
|
|
||||
|
Always follow these when generating or modifying code: |
||||
|
|
||||
|
1. **Run gates before committing.** Every change must pass the mandatory gates below. |
||||
|
2. **Classifications matter:** |
||||
|
- `MANDATORY` — must pass (default) |
||||
|
- `OPTIONAL` — should pass, warn on failure |
||||
|
- `ADVISORY` — informational only |
||||
|
3. **Path-scoped gates** run from their declared directory. |
||||
|
4. **Conditional gates** only run when their referenced file exists. |
||||
|
5. **No secrets.** - No hardcoded secrets — grep for sk_live, AKIA, password= before commit |
||||
|
6. Follow project commit conventions. |
||||
|
|
||||
|
## Quality Gates |
||||
|
|
||||
|
- uv run mypy . |
||||
|
- uv run pytest |
||||
|
- python -m build |
||||
|
- python -m build --sdist |
||||
|
- uv run --no-sync bash scripts/test-cov.sh |
||||
|
- uv run --no-sync pytest tests/benchmarks --codspeed |
||||
|
- uv run coverage combine coverage |
||||
|
- uv run coverage html --title "Coverage for ${{ github.sha }}" |
||||
|
- uv run coverage report --fail-under=100 |
||||
|
|
||||
|
## Boundaries |
||||
|
|
||||
|
- All file operations stay within this repository |
||||
|
- No destructive shell commands |
||||
|
- No new dependencies without justification |
||||
|
- Prefer editing existing files over creating new ones |
||||
|
|
||||
|
## Powered by crag |
||||
|
|
||||
|
This rule file is auto-generated from a single `governance.md` via **crag** (https://www.npmjs.com/package/@whitehatd/crag). To update, edit governance.md and re-run `crag compile --target continue`. |
||||
|
|
||||
|
<!-- crag:auto-end --> |
||||
@ -0,0 +1,40 @@ |
|||||
|
--- |
||||
|
description: Governance rules for fastapi — quality gates, security, conventions |
||||
|
globs: |
||||
|
- "**/*.py" |
||||
|
alwaysApply: true |
||||
|
--- |
||||
|
|
||||
|
# Governance — fastapi |
||||
|
|
||||
|
> Generated from governance.md by crag. Regenerate: `crag compile --target cursor` |
||||
|
|
||||
|
**Stack:** python |
||||
|
|
||||
|
## Quality Gates |
||||
|
|
||||
|
Run these checks in order before committing: |
||||
|
### Lint |
||||
|
- `uv run mypy .` |
||||
|
|
||||
|
### Test |
||||
|
- `uv run pytest` |
||||
|
|
||||
|
### Build |
||||
|
- `python -m build` |
||||
|
|
||||
|
### Ci (inferred from workflow) |
||||
|
- `python -m build --sdist` |
||||
|
- `uv run --no-sync bash scripts/test-cov.sh` |
||||
|
- `uv run --no-sync pytest tests/benchmarks --codspeed` |
||||
|
- `uv run coverage combine coverage` |
||||
|
- `uv run coverage html --title "Coverage for ${{ github.sha }}"` |
||||
|
- `uv run coverage report --fail-under=100` |
||||
|
## Security |
||||
|
|
||||
|
- No hardcoded secrets — grep for sk_live, AKIA, password= before commit |
||||
|
|
||||
|
## Conventions |
||||
|
|
||||
|
- Follow project commit conventions |
||||
|
- Runtimes: python |
||||
@ -0,0 +1,41 @@ |
|||||
|
<!-- crag:auto-start --> |
||||
|
# Copilot Instructions — fastapi |
||||
|
|
||||
|
> Generated from governance.md by crag. Regenerate: `crag compile --target copilot` |
||||
|
|
||||
|
|
||||
|
|
||||
|
**Stack:** python |
||||
|
|
||||
|
## Runtimes |
||||
|
|
||||
|
python |
||||
|
|
||||
|
## Quality Gates |
||||
|
|
||||
|
When you propose changes, the following checks must pass before commit: |
||||
|
|
||||
|
- **lint**: `uv run mypy .` |
||||
|
- **test**: `uv run pytest` |
||||
|
- **build**: `python -m build` |
||||
|
- **ci (inferred from workflow)**: `python -m build --sdist` |
||||
|
- **ci (inferred from workflow)**: `uv run --no-sync bash scripts/test-cov.sh` |
||||
|
- **ci (inferred from workflow)**: `uv run --no-sync pytest tests/benchmarks --codspeed` |
||||
|
- **ci (inferred from workflow)**: `uv run coverage combine coverage` |
||||
|
- **ci (inferred from workflow)**: `uv run coverage html --title "Coverage for ${{ github.sha }}"` |
||||
|
- **ci (inferred from workflow)**: `uv run coverage report --fail-under=100` |
||||
|
|
||||
|
## Expectations for AI-Assisted Code |
||||
|
|
||||
|
1. **Run gates before suggesting a commit.** If you cannot run them (no shell access), explicitly remind the human to run them. |
||||
|
2. **Respect classifications.** `MANDATORY` gates must pass. `OPTIONAL` gates should pass but may be overridden with a note. `ADVISORY` gates are informational only. |
||||
|
3. **Respect workspace paths.** When a gate is scoped to a subdirectory, run it from that directory. |
||||
|
4. **No hardcoded secrets.** - No hardcoded secrets — grep for sk_live, AKIA, password= before commit |
||||
|
5. Follow project commit conventions. |
||||
|
6. **Conservative changes.** Do not rewrite unrelated files. Do not add new dependencies without explaining why. |
||||
|
|
||||
|
## Tool Context |
||||
|
|
||||
|
This project uses **crag** (https://www.npmjs.com/package/@whitehatd/crag) as its AI-agent governance layer. The `governance.md` file is the authoritative source. If you have shell access, run `crag check` to verify the infrastructure and `crag diff` to detect drift. |
||||
|
|
||||
|
<!-- crag:auto-end --> |
||||
@ -0,0 +1,60 @@ |
|||||
|
<!-- crag:auto-start --> |
||||
|
# Zed Assistant Rules — fastapi |
||||
|
|
||||
|
> Generated from governance.md by crag. Regenerate: `crag compile --target zed` |
||||
|
|
||||
|
## Project Summary |
||||
|
|
||||
|
(No description) |
||||
|
|
||||
|
**Stack:** python |
||||
|
|
||||
|
**Runtimes:** python |
||||
|
|
||||
|
## Rules for Zed AI Assistant |
||||
|
|
||||
|
When suggesting edits or running the inline assistant: |
||||
|
|
||||
|
### 1. Quality Gates |
||||
|
|
||||
|
These must pass before any commit. Run them via Zed's terminal integration: |
||||
|
|
||||
|
- `uv run mypy .` |
||||
|
- `uv run pytest` |
||||
|
- `python -m build` |
||||
|
- `python -m build --sdist` |
||||
|
- `uv run --no-sync bash scripts/test-cov.sh` |
||||
|
- `uv run --no-sync pytest tests/benchmarks --codspeed` |
||||
|
- `uv run coverage combine coverage` |
||||
|
- `uv run coverage html --title "Coverage for ${{ github.sha }}"` |
||||
|
- `uv run coverage report --fail-under=100` |
||||
|
|
||||
|
### 2. Classification Semantics |
||||
|
|
||||
|
- **MANDATORY** — stop if this fails |
||||
|
- **OPTIONAL** — warn and continue |
||||
|
- **ADVISORY** — log and continue (informational) |
||||
|
|
||||
|
### 3. Scope Rules |
||||
|
|
||||
|
- `path:dir/` — run the gate from that directory |
||||
|
- `if:file` — skip the gate's section when the file does not exist |
||||
|
|
||||
|
### 4. Behavior Boundaries |
||||
|
|
||||
|
- All file operations must stay within this repository. |
||||
|
- Never run destructive system commands (`rm -rf /`, `DROP TABLE`, `curl|bash`, force-push to main). |
||||
|
- - No hardcoded secrets — grep for sk_live, AKIA, password= before commit |
||||
|
- Follow project commit conventions. |
||||
|
|
||||
|
### 5. Authoritative Source |
||||
|
|
||||
|
When these rules conflict with ad-hoc instructions, **governance.md wins**. It is the single source of truth for this project's policies. |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
**Generated by crag** — https://www.npmjs.com/package/@whitehatd/crag |
||||
|
|
||||
|
To update these rules, edit `.claude/governance.md` and re-run `crag compile --target zed`. |
||||
|
|
||||
|
<!-- crag:auto-end --> |
||||
@ -0,0 +1,54 @@ |
|||||
|
--- |
||||
|
trigger: always_on |
||||
|
description: Governance rules for fastapi — compiled from governance.md by crag |
||||
|
--- |
||||
|
|
||||
|
# Windsurf Rules — fastapi |
||||
|
|
||||
|
Generated from governance.md by crag. Regenerate: `crag compile --target windsurf` |
||||
|
|
||||
|
## Project |
||||
|
|
||||
|
(No description) |
||||
|
|
||||
|
**Stack:** python |
||||
|
|
||||
|
## Runtimes |
||||
|
|
||||
|
python |
||||
|
|
||||
|
## Cascade Behavior |
||||
|
|
||||
|
When Windsurf's Cascade agent operates on this project: |
||||
|
|
||||
|
- **Always read governance.md first.** It is the single source of truth for quality gates and policies. |
||||
|
- **Run all mandatory gates before proposing changes.** Stop on first failure. |
||||
|
- **Respect classifications.** OPTIONAL gates warn but don't block. ADVISORY gates are informational. |
||||
|
- **Respect path scopes.** Gates with a `path:` annotation must run from that directory. |
||||
|
- **No destructive commands.** Never run rm -rf, dd, DROP TABLE, force-push to main, curl|bash, docker system prune. |
||||
|
- - No hardcoded secrets — grep for sk_live, AKIA, password= before commit |
||||
|
- Follow the project commit conventions. |
||||
|
|
||||
|
## Quality Gates (run in order) |
||||
|
|
||||
|
1. `uv run mypy .` |
||||
|
2. `uv run pytest` |
||||
|
3. `python -m build` |
||||
|
4. `python -m build --sdist` |
||||
|
5. `uv run --no-sync bash scripts/test-cov.sh` |
||||
|
6. `uv run --no-sync pytest tests/benchmarks --codspeed` |
||||
|
7. `uv run coverage combine coverage` |
||||
|
8. `uv run coverage html --title "Coverage for ${{ github.sha }}"` |
||||
|
9. `uv run coverage report --fail-under=100` |
||||
|
|
||||
|
## Rules of Engagement |
||||
|
|
||||
|
1. **Minimal changes.** Don't rewrite files that weren't asked to change. |
||||
|
2. **No new dependencies** without explicit approval. |
||||
|
3. **Prefer editing** existing files over creating new ones. |
||||
|
4. **Always explain** non-obvious changes in commit messages. |
||||
|
5. **Ask before** destructive operations (delete, rename, migrate schema). |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
**Tool:** crag — https://www.npmjs.com/package/@whitehatd/crag |
||||
@ -0,0 +1,70 @@ |
|||||
|
<!-- crag:auto-start --> |
||||
|
# AGENTS.md |
||||
|
|
||||
|
> Generated from governance.md by crag. Regenerate: `crag compile --target agents-md` |
||||
|
|
||||
|
## Project: fastapi |
||||
|
|
||||
|
|
||||
|
## Quality Gates |
||||
|
|
||||
|
All changes must pass these checks before commit: |
||||
|
|
||||
|
### Lint |
||||
|
1. `uv run mypy .` |
||||
|
|
||||
|
### Test |
||||
|
1. `uv run pytest` |
||||
|
|
||||
|
### Build |
||||
|
1. `python -m build` |
||||
|
|
||||
|
### Ci (inferred from workflow) |
||||
|
1. `python -m build --sdist` |
||||
|
2. `uv run --no-sync bash scripts/test-cov.sh` |
||||
|
3. `uv run --no-sync pytest tests/benchmarks --codspeed` |
||||
|
4. `uv run coverage combine coverage` |
||||
|
5. `uv run coverage html --title "Coverage for ${{ github.sha }}"` |
||||
|
6. `uv run coverage report --fail-under=100` |
||||
|
|
||||
|
## Coding Standards |
||||
|
|
||||
|
- Stack: python |
||||
|
- Follow project commit conventions |
||||
|
|
||||
|
## Architecture |
||||
|
|
||||
|
- Type: monolith |
||||
|
|
||||
|
## Key Directories |
||||
|
|
||||
|
- `.github/` — CI/CD |
||||
|
- `docs/` — documentation |
||||
|
- `scripts/` — tooling |
||||
|
- `tests/` — tests |
||||
|
|
||||
|
## Testing |
||||
|
|
||||
|
- Framework: pytest |
||||
|
- Layout: flat |
||||
|
- Naming: test_*.py |
||||
|
|
||||
|
## Anti-Patterns |
||||
|
|
||||
|
Do not: |
||||
|
- Do not catch bare `Exception` — catch specific exceptions |
||||
|
- Do not use mutable default arguments (e.g., `def f(x=[])`) |
||||
|
- Do not use `import *` — use explicit imports |
||||
|
|
||||
|
## Security |
||||
|
|
||||
|
- No hardcoded secrets — grep for sk_live, AKIA, password= before commit |
||||
|
|
||||
|
## Workflow |
||||
|
|
||||
|
1. Read `governance.md` at the start of every session — it is the single source of truth. |
||||
|
2. Run all mandatory quality gates before committing. |
||||
|
3. If a gate fails, fix the issue and re-run only the failed gate. |
||||
|
4. Use the project commit conventions for all changes. |
||||
|
|
||||
|
<!-- crag:auto-end --> |
||||
@ -0,0 +1,42 @@ |
|||||
|
<!-- crag:auto-start --> |
||||
|
# CLAUDE.md — fastapi |
||||
|
|
||||
|
> Generated from governance.md by crag. Regenerate: `crag compile --target claude` |
||||
|
|
||||
|
|
||||
|
|
||||
|
**Stack:** python |
||||
|
**Runtimes:** python |
||||
|
|
||||
|
## Quality Gates |
||||
|
|
||||
|
Run these in order before committing. Stop on first MANDATORY failure: |
||||
|
|
||||
|
- `uv run mypy .` |
||||
|
- `uv run pytest` |
||||
|
- `python -m build` |
||||
|
- `python -m build --sdist` |
||||
|
- `uv run --no-sync bash scripts/test-cov.sh` |
||||
|
- `uv run --no-sync pytest tests/benchmarks --codspeed` |
||||
|
- `uv run coverage combine coverage` |
||||
|
- `uv run coverage html --title "Coverage for ${{ github.sha }}"` |
||||
|
- `uv run coverage report --fail-under=100` |
||||
|
|
||||
|
## Rules |
||||
|
|
||||
|
1. Read `governance.md` at the start of every session — it is the single source of truth. |
||||
|
2. Run all mandatory quality gates before committing. |
||||
|
3. If a gate fails, attempt an automatic fix (lint/format) with bounded retry (max 2 attempts). If it still fails, escalate to the user. |
||||
|
4. Never modify files outside this repository. |
||||
|
5. Never run destructive system commands (`rm -rf /`, `DROP TABLE`, force-push to main). |
||||
|
- Follow project commit conventions |
||||
|
|
||||
|
## Security |
||||
|
|
||||
|
- No hardcoded secrets — grep for sk_live, AKIA, password= before commit |
||||
|
|
||||
|
## Tool Context |
||||
|
|
||||
|
This project uses **crag** (https://www.npmjs.com/package/@whitehatd/crag) as its governance engine. The `governance.md` file is the authoritative source. Run `crag audit` to detect drift and `crag compile --target all` to recompile all targets. |
||||
|
|
||||
|
<!-- crag:auto-end --> |
||||
@ -0,0 +1,38 @@ |
|||||
|
<!-- crag:auto-start --> |
||||
|
# GEMINI.md |
||||
|
|
||||
|
> Generated from governance.md by crag. Regenerate: `crag compile --target gemini` |
||||
|
|
||||
|
## Project Context |
||||
|
|
||||
|
- **Name:** fastapi |
||||
|
- **Stack:** python |
||||
|
- **Runtimes:** python |
||||
|
|
||||
|
## Rules |
||||
|
|
||||
|
### Quality Gates |
||||
|
|
||||
|
Run these checks in order before committing any changes: |
||||
|
|
||||
|
1. [lint] `uv run mypy .` |
||||
|
2. [test] `uv run pytest` |
||||
|
3. [build] `python -m build` |
||||
|
4. [ci (inferred from workflow)] `python -m build --sdist` |
||||
|
5. [ci (inferred from workflow)] `uv run --no-sync bash scripts/test-cov.sh` |
||||
|
6. [ci (inferred from workflow)] `uv run --no-sync pytest tests/benchmarks --codspeed` |
||||
|
7. [ci (inferred from workflow)] `uv run coverage combine coverage` |
||||
|
8. [ci (inferred from workflow)] `uv run coverage html --title "Coverage for ${{ github.sha }}"` |
||||
|
9. [ci (inferred from workflow)] `uv run coverage report --fail-under=100` |
||||
|
|
||||
|
### Security |
||||
|
|
||||
|
- No hardcoded secrets — grep for sk_live, AKIA, password= before commit |
||||
|
|
||||
|
### Workflow |
||||
|
|
||||
|
- Follow project commit conventions |
||||
|
- Run quality gates before committing |
||||
|
- Review security implications of all changes |
||||
|
|
||||
|
<!-- crag:auto-end --> |
||||
Loading…
Reference in new issue