Instruction file imported from anilcancakir/depools (
.github/instructions/review.instructions.md). Copyright stays with the author.
Reviewing this repository
Four properties are load-bearing. A diff that breaks one is wrong however well it reads, and this is the whole floor:
- Stock is a ledger. No write sets a quantity and no row is edited or deleted.
StockWriteris the only writer ofstock_movements,stock_lots,product_stockandproduct_serials; a correction is a compensating movement. Inbound stock always creates a lot. team_idcomes from the auth context. Never from a request field, a route parameter or a tool argument. A cross-tenant read answers 404, not 403.withoutGlobalScope(TeamScope::class)is legitimate outside a request but needs a comment naming the record it is keyed on.- Model calls go through the gateway in
app/Ai/Contracts/. A direct provider client skips redaction, the credit check and the usage record at once. Numbers are computed in PHP, never inside a prompt. - Colours are semantic tokens. No
Color(0x...), noColors.*, and user-visible strings resolve throughLang.getwith the key present in bothassets/lang/tr.jsonandassets/lang/en.json.
Report a violation with the corrected line, not with a restatement of the rule.
Settled decisions: do not raise these
Each was decided with the reason recorded, so raising it again costs a round trip and teaches the team to skim reviews:
- The absence of
declare(strict_types=1). It is the convention here, not an omission. fg-disabledandbordermeasuring below 3:1, andMSButton's secondary fill at 1.31:1. Documented WCAG exemptions: an inactive component is out of scope, and a control carrying visible text does not need a 3:1 boundary.on-primarybeing DARK in dark mode. The bright accent needs dark text on it.- Turkish strings inside fixture files. Fixtures stand in for user data, which is not translated.
masterrather thanmainas the default branch.- The length of
AGENTS.mdor of.claude/rules/design.md. - A migration edited in place rather than superseded. The schema is not deployed yet.
- A
catchthat rethrows or logs and rethrows. The rule here bans swallowing, not handling.