Skip to content

feat(review): add .gittensory.yml review.profile (chill / balanced / assertive) - #1347

Merged
JSONbored merged 1 commit into
mainfrom
feat/review-profile
Jun 25, 2026
Merged

feat(review): add .gittensory.yml review.profile (chill / balanced / assertive)#1347
JSONbored merged 1 commit into
mainfrom
feat/review-profile

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Summary

The first CodeRabbit-parity feature: a .gittensory.yml review.profile knob that lets a maintainer set how nitpicky the AI maintainer-review write-up is.

review:
  profile: chill        # report only blocking defects (bugs/security/breakage); suppress style nits
  # profile: assertive  # also surface minor improvements, style, and nitpicks
  # profile: balanced   # default — reviewer prompt is byte-identical
  • Config-only — it lives in manifest.review (the .gittensory.yml config-as-code), so no DB migration / OpenAPI change.
  • Presentation only — it shapes how much advisory detail the prose carries; it never changes the gate verdict (the consensus-defect pass runs identically). Absent / balanced appends nothing → the reviewer prompt is byte-identical to today.

Changes

  • focus-manifest.tsReviewProfile type + profile on FocusManifestReviewConfig; parse (case-insensitive, balanced→null, invalid→warning) + serialize for the cache round-trip.
  • ai-review.tsprofile on GittensoryAiReviewInput; buildSystemPrompt appends a chill/assertive tone suffix.
  • processors.ts — resolve review.profile from the already-cached manifest at the AI-review call site and thread it in (no extra fetch; the AI-review path makes no new manifest load — verified by the direct-call unit tests).

Closes #1344

Scope

  • src/ only — config parse + prompt suffix + threading; no migration/OpenAPI/binding change (ui:openapi:check green)
  • No secrets/site/CNAME/lovable; no CHANGELOG

Validation

  • npm run test:ci — exit 0; 4305 tests pass
  • npm audit --audit-level=moderate — 0 vulnerabilities
  • Every changed src line + branch covered (verified via lcov BRDA across focus-manifest.ts, ai-review.ts, processors.ts)
  • Tests: parse chill/assertive (case-insensitive), balanced→null + not-present, invalid string/non-string→warning, round-trip; buildSystemPrompt appends CHILL/ASSERTIVE per profile and stays byte-identical when absent

Safety

  • Presentation knob only — cannot affect the gate verdict, merge/close disposition, or any public-safe boundary
  • Byte-identical default (absent/balanced) — zero behavior change unless a maintainer opts in

…assertive) (#review-profile)

A CodeRabbit-parity presentation knob: a maintainer can set how nitpicky the AI maintainer
review write-up is, from the repo's `.gittensory.yml`:

  review:
    profile: chill        # only blocking defects, suppress style nits
    # profile: assertive  # also raise minor improvements + nits
    # profile: balanced   # default — reviewer prompt byte-identical

It is config-only (lives in manifest.review, no DB migration) and PRESENTATION ONLY — it
shapes how much advisory detail the prose carries, NEVER the gate verdict (the consensus-defect
pass runs the same). Absent / `balanced` appends nothing, so the reviewer prompt is byte-identical.

- focus-manifest.ts: ReviewProfile type + `profile` on FocusManifestReviewConfig; parse
  (case-insensitive, balanced→null, invalid→warning) + serialize for the cache round-trip.
- ai-review.ts: `profile` on GittensoryAiReviewInput; buildSystemPrompt appends a chill/assertive
  tone suffix.
- processors.ts: resolve review.profile from the (already-cached) manifest at the AI-review call
  site and thread it in — no extra fetch.
@dosubot dosubot Bot added the size:M label Jun 25, 2026
@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@JSONbored JSONbored self-assigned this Jun 25, 2026
@JSONbored
JSONbored merged commit cc8dc3f into main Jun 25, 2026
16 checks passed
@JSONbored
JSONbored deleted the feat/review-profile branch June 25, 2026 09:52
@codecov

codecov Bot commented Jun 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.27%. Comparing base (2e99233) to head (96b39f3).
⚠️ Report is 3 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1347      +/-   ##
==========================================
+ Coverage   95.25%   95.27%   +0.01%     
==========================================
  Files         188      188              
  Lines       20314    20330      +16     
  Branches     7319     7326       +7     
==========================================
+ Hits        19350    19369      +19     
  Misses        378      378              
+ Partials      586      583       -3     
Files with missing lines Coverage Δ
src/queue/processors.ts 87.57% <100.00%> (+0.02%) ⬆️
src/services/ai-review.ts 97.70% <100.00%> (+0.02%) ⬆️
src/signals/focus-manifest.ts 97.37% <100.00%> (+0.81%) ⬆️
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: @gittensory mention regex matches longer handles (@gittensory-bot) as a bare command

1 participant