@@ -43,6 +43,66 @@ You decide which scale matters most for each change. A one-line fix in
4343` value.rs ` may need deep big-picture thinking. A large refactor may mostly
4444need file-level polish review.
4545
46+ ## Review Perspectives
47+
48+ Adopt these perspectives during your review. You cannot launch subagents, so
49+ ** think from each relevant perspective yourself** . Not every perspective applies
50+ to every change — select the ones that matter based on what changed.
51+
52+ For deeper guidance on any perspective, read the corresponding agent file from
53+ ` .github/agents/ ` — each contains detailed domain-specific checklists.
54+
55+ ### 🔴 Red Teamer (` red-teamer.agent.md ` )
56+ Think like an attacker who has read the source code. Can this change be exploited
57+ with pathological inputs? Deeply nested JSON → stack overflow? Enormous strings →
58+ OOM? Policies designed to exploit quadratic evaluation? Can Undefined propagation
59+ be weaponized to flip a policy decision?
60+
61+ ### 🧠 Semantics Expert (` semantics-expert.agent.md ` )
62+ Does this match the OPA/Rego specification exactly? Is Undefined handled correctly
63+ in every expression? Do interpreter and RVM produce identical results? Are ` with `
64+ overrides restored on exit? Does rule conflict resolution follow spec?
65+
66+ ### 🏗️ Architect (` architect.agent.md ` )
67+ Does this respect module boundaries? How does it affect the 9 FFI bindings? Does
68+ it compile with ` --no-default-features ` ? Will it block planned features (language
69+ servers, partial evaluation, daemon mode)? Is the API change backward compatible?
70+
71+ ### ⚡ Performance Engineer (` performance-engineer.agent.md ` )
72+ Are there allocations in the evaluation hot path? Clone where borrow suffices?
73+ O(n²) patterns? Temporary collections built just to iterate once? Would this
74+ change benefit from a benchmark?
75+
76+ ### 🧪 Test Engineer (` test-engineer.agent.md ` )
77+ Are new code paths tested? Both interpreter AND RVM paths? Edge cases: empty
78+ collections, Undefined operands, type mismatches, boundary values? Are tests
79+ testing behavior (not implementation)? Would property-based testing help?
80+
81+ ### 🔒 Security Auditor (` security-auditor.agent.md ` )
82+ What trust boundaries are crossed? Are resource limits preserved? Any new
83+ dependencies — are they audited and no_std compatible? Actions pinned by SHA?
84+ Can the error path leak sensitive information?
85+
86+ ### 🛡️ Reliability Engineer (` reliability-engineer.agent.md ` )
87+ Is evaluation still deterministic? Any new panic paths (` unwrap ` , unchecked index)?
88+ Are resources bounded and cleaned up on all exit paths? When limits are hit, is
89+ the error clear and actionable?
90+
91+ ### 🔧 Support Engineer (` support-engineer.agent.md ` )
92+ Do error messages include source location? Can an operator diagnose the issue
93+ without reading regorus source? Are error chains preserved through wrapping?
94+ Does this change preserve or improve diagnostic information?
95+
96+ ### 📋 API Steward (` api-steward.agent.md ` )
97+ Does this change the public API? Is it backward compatible? Does it need a semver
98+ bump? Are all 9 bindings updated? Is there a deprecation path? Is the CHANGELOG
99+ updated?
100+
101+ ### 🔄 Refactorer (` refactorer.agent.md ` )
102+ Is there duplicated logic that should be shared? Functions over 50 lines that
103+ should be decomposed? Dead code? Inconsistent patterns? Could newer Rust features
104+ simplify this?
105+
46106## Domain Knowledge
47107
48108This is what makes regorus unique. Internalize this context and let it inform
0 commit comments