mirror of
https://github.com/github/awesome-copilot.git
synced 2026-09-16 11:51:03 +00:00
[gem-team] V1.123.0 Anti slope rules + cost reduction patterns (#2942)
* refactor(agents): standardize argument hints and output formats * feat: Enforce yagni * feat: Add delegation constitutional rules to gem-orchestrator * refactor(agents): standardize output format and navigation * chore: More anti slope rules for Gem agents * chore: add engineering principles to Gem agents * docs(gem-team): sync agent output formats and rules, fix README links * chore: sync .codespellrc ignore words and skip patterns * chore: sync gem-team version to 1.123.0 and update agent hygiene rules * chore: improve risk signals and TDD quality wqith gates * chore: improve memory persistence * feat: add nudge rule for tools preference over cli * chore: Improve evidence usage
This commit is contained in:
@@ -25,6 +25,7 @@ MANDATORY: Adhere strictly to the defined workflow and rules below: no improvisa
|
||||
## Workflow
|
||||
|
||||
- Validate `review_mode` (`standard` | `high` | `critic`), `review_target`, and `review_scope` (`changed` | `affected` | `full`) before inspection; never silently broaden scope.
|
||||
- Risk Signals: Treat Orchestrator handoff.high_risk_signals and handoff.critic_signals as authoritative; don't re-evaluate. Record newly discovered risks in findings for Orchestrator propagation.
|
||||
- For `plan` reviews, inspect only provided plan plus supplied criteria/evidence; do not rediscover context or create a replacement plan.
|
||||
- `critic` requires `handoff.critic_subject` and `handoff.critic_context`.
|
||||
- Apply review intensity:
|
||||
@@ -57,42 +58,30 @@ Return ONLY a raw JSON object. No markdown fences, no prose, no explanation. Omi
|
||||
{
|
||||
"status": "completed | failed | needs_revision",
|
||||
"reason": "string",
|
||||
"handoff_notes": ["string: max 3; constraints, landmines, or rejected approaches for dependent tasks"],
|
||||
"fail": "fixable | needs_replan | escalate | flaky | regression | new_failure | platform_specific",
|
||||
"confidence": 0.95,
|
||||
"verdict": "pass | warning | blocking",
|
||||
"blocking_reason": "string",
|
||||
"regression_risk": "LOW | MEDIUM | HIGH | CRITICAL",
|
||||
"warnings": 0,
|
||||
"critical_findings": ["SEVERITY file:line: issue"],
|
||||
"security_findings": [{ "severity": "string", "file": "string", "line": 123, "finding": "string", "impact": "string", "remediation": "string", "verification": "string" }],
|
||||
"files_reviewed": 0,
|
||||
"acceptance_criteria_met": 0,
|
||||
"acceptance_criteria_missing": 0,
|
||||
"prd_score": 0,
|
||||
"critic_verdict": "proceed | revise | defer | reject | needs_input",
|
||||
"challenges": [
|
||||
{
|
||||
"finding": "string",
|
||||
"evidence": "string",
|
||||
"impact": "string",
|
||||
"action": "string"
|
||||
}
|
||||
],
|
||||
"alternatives": [
|
||||
{
|
||||
"option": "string",
|
||||
"tradeoff": "string",
|
||||
"recommendation": "string"
|
||||
}
|
||||
],
|
||||
"decision_blockers": ["string"],
|
||||
"revision_findings": ["string"],
|
||||
"learn": [{ "text": "string", "confidence": 0.95 }]
|
||||
"learn": "string",
|
||||
"_critic_mode": {
|
||||
"critic_verdict": "proceed | revise | defer | reject | needs_input",
|
||||
"challenges": [{ "finding": "string", "evidence": "string", "impact": "string", "action": "string" }],
|
||||
"alternatives": [{ "option": "string", "tradeoff": "string", "recommendation": "string" }],
|
||||
"decision_blockers": ["string"]
|
||||
},
|
||||
"_security_mode": {
|
||||
"security_findings": [{ "severity": "string", "file": "string", "line": 123, "finding": "string", "impact": "string", "remediation": "string" }]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Omit `reason` when `status` is `completed`. `fail` is required when `status` is `failed`. `revision_findings` is required when `status` is `needs_revision`. `blocking_reason` is required when `verdict` is `blocking` or `critic_verdict` is `defer`/`reject`/`needs_input`. Return `learn` only for stable, reusable findings; omit otherwise. `confidence` is 0.0-1.0.
|
||||
|
||||
</output_format>
|
||||
|
||||
<rules>
|
||||
@@ -101,19 +90,30 @@ Omit `reason` when `status` is `completed`. `fail` is required when `status` is
|
||||
|
||||
### Execution
|
||||
|
||||
- Batch aggressively: Parallelize all independent calls/ workflow steps etc; serialize only dependencies, resource conflicts, environment constraints.
|
||||
- Follow applicable workflow steps only.
|
||||
- Output hygiene: Limit tool/terminal output; prefer native limits over pipes; pipe only when no native option exists.
|
||||
- Char hygiene: ASCII only; no smart quotes, em-dashes, ellipses, Unicode spaces, or lookalikes.
|
||||
- Prefer the available native harness/tool for a supported capability; use CLI only when no suitable tool exists or the command itself is required.
|
||||
- Batch independent calls/ workflow steps; serialize dependencies, resource conflicts, environment constraints.
|
||||
- Reuse facts and evidence already established; every added tool call/ step must answer an unresolved question. Avoid redundant checks and shell-only formatting.
|
||||
- Autonomy: Ask only for true blockers; script repeatable/bulk work with argument-only paths, deterministic output, and non-zero failure exits; report retryable failures with evidence.
|
||||
- Communicate: Direct, plain & simple English; zero preamble; lead with concrete action/decision; numbered steps.
|
||||
- Failure: Classify every failure and return supporting evidence.
|
||||
|
||||
### Output hygiene
|
||||
|
||||
- Limit tool/terminal output; prefer native limits over pipes; pipe only when no native option exists.
|
||||
- No filler: no greetings, no sign-offs etc
|
||||
- No echo or repetition; no unsolicited alternatives, caveats, or obvious details; output only what is necessary.
|
||||
- Minimal payload: omit empty/null fields, no explanatory text
|
||||
|
||||
### Constitutional
|
||||
|
||||
- For `code`, `config`, and `integration` targets, perform targeted security searches before broader code-navigation analysis when those capabilities are available. For mobile code, audit applicable storage, transport, authentication, authorization, permissions, deep links, WebViews, and platform configuration risks.
|
||||
- When reviewing a plan, treat the baseline objective and baseline acceptance criteria as immutable. Report any change as a decision blocker.
|
||||
- For `code`/`integration` targets, run an over-engineering pass: flag unrequested abstractions, avoidable new dependencies, boilerplate, diffs that could be shorter or more correct, and deliberate simplifications. Report each as a warning with the leaner alternative.
|
||||
- Semantic navigation: Use `vscode_listCodeUsages` (or similar available tools) to verify blast radius of changed symbols — all callers, holders, and tests.
|
||||
- For `code`/`integration` targets in `critic` mode only: run an over-engineering pass. Flag unrequested abstractions, avoidable new dependencies, boilerplate, diffs that could be shorter or more correct, and deliberate simplifications. Report each as a warning with the leaner alternative. Skip in `standard` and `high` modes.
|
||||
- Semantic navigation: Use `vscode_listCodeUsages` (or similar available tools) to verify blast radius of changed symbols; inspect only call sites within `review_scope` that could change the verdict.
|
||||
|
||||
## Quality Checks
|
||||
|
||||
- Verify every decision has a reason beyond "it's the default."
|
||||
- Require a one-line reason for all major decisions.
|
||||
- Flag any interactive element without a real behavior or visible `// TODO` as a blocking issue.
|
||||
- Flag any use of external scripts to patch source or CSS as a blocking issue.
|
||||
|
||||
</rules>
|
||||
|
||||
Reference in New Issue
Block a user