Skip to content

feat: diversify personality preset assignments across templates#743

Merged
Aureliolo merged 2 commits intomainfrom
feat/template-personality-presets
Mar 22, 2026
Merged

feat: diversify personality preset assignments across templates#743
Aureliolo merged 2 commits intomainfrom
feat/template-personality-presets

Conversation

@Aureliolo
Copy link
Copy Markdown
Owner

Summary

  • Diversify personality preset assignments across 6 of 7 builtin templates (dev_shop already fully diverse) so each org has a distinct "feel"
  • Fix role mismatches: Scrum Master no longer shares process_optimizer with COO; UX Researcher differentiated from UX Designer
  • All 4 previously unused presets (team_diplomat, empathetic_mentor, rapid_prototyper, communication_bridge) are now assigned -- all 20 presets utilized
  • Vary by seniority within templates: eager_learner reduced from 5 templates to 2
  • QA Engineer presets diversified (agency QA now process_optimizer)
  • Update design spec example to match actual template values

22 preset changes across 6 YAML files + 1 doc fix

Template Changes Theme
Solo Founder 1 Scrappy bootstrapper
Tech Startup 2 Move fast, experiment
Dev Shop 0 Already diverse (8 unique)
Product Team 3 User-centered, collaborative
Agency 7 Creative, client-focused delivery
Research Lab 2 Academic, deep, methodical
Full Company 7 Enterprise, structured

Test plan

  • All 250 template unit tests pass (uv run python -m pytest tests/unit/templates/ -n auto)
  • Full unit suite passes (10178 passed)
  • Lint clean (uv run ruff check src/ tests/)
  • All 20 personality presets now assigned to at least one template agent
  • No tests assert on specific template-to-preset mappings (verified)

Review coverage

Pre-reviewed by 2 agents (docs-consistency, issue-resolution-verifier), 4 findings addressed.

Closes #718

Aureliolo and others added 2 commits March 22, 2026 18:36
Vary personality presets per template so each org has a distinct "feel":
- Solo Founder: rapid_prototyper for scrappy iteration
- Tech Startup: rapid_prototyper CTO, team_diplomat mid devs
- Product Team: methodical_analyst UX Researcher, communication_bridge FS dev
- Agency: team_diplomat Scrum Master, creative_innovator Content Writer
- Research Lab: disciplined_executor Data Engineer
- Full Company: independent_researcher UX Researcher, empathetic_mentor SM

Fix role mismatches: Scrum Master no longer shares process_optimizer with
COO, UX Researcher differentiated from UX Designer. All 4 previously
unused presets (team_diplomat, empathetic_mentor, rapid_prototyper,
communication_bridge) are now assigned. 19 changes across 6 YAML files.

Closes #718

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
- Research Lab Backend Dev: pragmatic_builder -> independent_researcher
  (per issue #718 explicit request, differentiates from dev_shop)
- Agency QA Engineer: quality_guardian -> process_optimizer
  (QA Engineer variation -- issue flagged zero diversification)
- Agency Full-Stack Dev (Mid): eager_learner -> empathetic_mentor
  (reduces eager_learner repetition across templates)
- docs/design/organization.md: update startup template example to match
  actual team_diplomat assignment

Pre-reviewed by 2 agents, 4 findings addressed.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@github-actions
Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 22, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 2fcc511b-b15b-4d40-9e9c-57aa86d49a2e

📥 Commits

Reviewing files that changed from the base of the PR and between 3045df8 and b9d25b0.

📒 Files selected for processing (7)
  • docs/design/organization.md
  • src/synthorg/templates/builtins/agency.yaml
  • src/synthorg/templates/builtins/full_company.yaml
  • src/synthorg/templates/builtins/product_team.yaml
  • src/synthorg/templates/builtins/research_lab.yaml
  • src/synthorg/templates/builtins/solo_founder.yaml
  • src/synthorg/templates/builtins/startup.yaml
📜 Recent review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Test (Python 3.14)
  • GitHub Check: Build Backend
  • GitHub Check: Build Sandbox
  • GitHub Check: Build Web
  • GitHub Check: Analyze (python)
🧰 Additional context used
📓 Path-based instructions (1)
docs/design/*.md

📄 CodeRabbit inference engine (CLAUDE.md)

When approved deviations occur, update the relevant docs/design/ page to reflect the new reality.

Files:

  • docs/design/organization.md
🧠 Learnings (7)
📓 Common learnings
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-20T08:28:32.845Z
Learning: Applies to src/synthorg/templates/**/*.py : Templates: pre-built company templates, personality presets, and builder.
📚 Learning: 2026-03-20T08:28:32.845Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-20T08:28:32.845Z
Learning: Applies to src/synthorg/templates/**/*.py : Templates: pre-built company templates, personality presets, and builder.

Applied to files:

  • src/synthorg/templates/builtins/startup.yaml
  • src/synthorg/templates/builtins/solo_founder.yaml
  • src/synthorg/templates/builtins/research_lab.yaml
  • src/synthorg/templates/builtins/product_team.yaml
  • src/synthorg/templates/builtins/full_company.yaml
  • src/synthorg/templates/builtins/agency.yaml
📚 Learning: 2026-03-16T06:24:56.341Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-16T06:24:56.341Z
Learning: Applies to docs/design/**/*.md : Design specification pages in `docs/design/` must be consulted before implementing features (7 pages: index, agents, organization, communication, engine, memory, operations)

Applied to files:

  • docs/design/organization.md
📚 Learning: 2026-03-19T07:13:44.964Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:13:44.964Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue — DESIGN_SPEC.md is a pointer file linking to 7 design pages (Agents, Organization, Communication, Engine, Memory, Operations)

Applied to files:

  • docs/design/organization.md
📚 Learning: 2026-03-19T07:12:14.508Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-19T07:12:14.508Z
Learning: Applies to docs/design/*.md : Design spec pages: 7 pages in `docs/design/` — index, agents, organization, communication, engine, memory, operations

Applied to files:

  • docs/design/organization.md
📚 Learning: 2026-03-14T15:43:05.601Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-14T15:43:05.601Z
Learning: Applies to docs/** : Docs source in docs/ (Markdown, built with Zensical); design spec in docs/design/ (7 pages: index, agents, organization, communication, engine, memory, operations)

Applied to files:

  • docs/design/organization.md
📚 Learning: 2026-03-15T18:38:44.202Z
Learnt from: CR
Repo: Aureliolo/synthorg PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-03-15T18:38:44.202Z
Learning: Always read the relevant `docs/design/` page before implementing any feature or planning any issue. DESIGN_SPEC.md is a pointer file linking to the 7 design pages (index, agents, organization, communication, engine, memory, operations).

Applied to files:

  • docs/design/organization.md
🔇 Additional comments (23)
docs/design/organization.md (1)

169-169: Documentation example is correctly aligned with template reality.

Line 169 now matches the updated startup template preset for the mid Full-Stack Developer.

As per coding guidelines: "docs/design/*.md: When approved deviations occur, update the relevant docs/design/ page to reflect the new reality."

src/synthorg/templates/builtins/startup.yaml (2)

49-49: CTO preset update is a good diversification change.

Line 49 gives the startup CTO a distinct profile without structural side effects.


63-63: Mid-level Full-Stack preset change looks good.

Line 63 improves within-template variation and supports the reduced reuse of eager_learner.

src/synthorg/templates/builtins/solo_founder.yaml (1)

46-46: Preset change fits the Solo Founder template intent.

Line 46 better matches the rapid experimentation profile of this template.

src/synthorg/templates/builtins/research_lab.yaml (2)

49-49: Backend Developer preset reassignment is well-targeted.

Line 49 gives the research-lab backend role a more context-appropriate profile.


55-55: Data Engineer preset update is consistent and sensible.

Line 55 improves role differentiation while keeping template structure unchanged.

src/synthorg/templates/builtins/product_team.yaml (3)

61-61: UX Researcher is now properly differentiated from UX Designer.

Line 61 resolves the earlier role-preset overlap cleanly.


75-75: backend-mid preset diversification looks good.

Line 75 improves mid-level engineering variation in this template.


87-87: Senior Full-Stack preset change is coherent.

Line 87 adds distinctiveness without affecting merge keys or hierarchy behavior.

src/synthorg/templates/builtins/full_company.yaml (7)

120-120: UX Researcher preset update is a strong fix.

Line 120 clearly separates UX Researcher behavior from UX Designer.


133-133: DevOps/SRE preset remap is consistent with broader balancing.

Line 133 improves role spread in engineering presets.


139-139: Database Engineer preset change is appropriate.

Line 139 increases specialization while preserving all existing keys and structure.


169-169: Dynamic frontend mid-level branch now has better variation.

Line 169 reduces repetitive assignment in generated frontend agents.


210-210: Project Manager preset diversification is good.

Line 210 introduces clearer distinction in operations personas.


216-216: Scrum Master/COO mismatch is correctly resolved.

Line 216 ensures Scrum Master no longer shares COO’s process-oriented preset.


236-236: Content Writer preset now better matches creative_marketing context.

Line 236 aligns role tone with department function.

src/synthorg/templates/builtins/agency.yaml (7)

55-55: Product Manager preset reassignment is solid.

Line 55 adds role distinction in operations for agency setup.


61-61: Scrum Master preset change improves persona separation.

Line 61 avoids reuse of overly process-centric mapping.


79-79: Frontend Developer preset update fits agency execution style.

Line 79 gives this role a more delivery-focused profile.


85-85: Backend Developer preset remap is coherent.

Line 85 contributes to better cross-role spread.


98-98: QA Engineer preset update is well aligned.

Line 98 matches the intended agency QA behavior change.


104-104: Content Writer preset now aligns with creative marketing output.

Line 104 is an appropriate role-context adjustment.


117-117: Mid Full-Stack preset diversification is a good addition.

Line 117 improves seniority/persona variation without merge-key changes.


Walkthrough

This pull request updates personality preset assignments across seven template files and one documentation file. Specifically, 23 personality preset values are reassigned for agent roles including developers at various levels, managers, engineers, and specialized positions across multiple organizational templates (agency.yaml, full_company.yaml, product_team.yaml, research_lab.yaml, solo_founder.yaml, startup.yaml). The changes replace preset values with alternatives from the existing 20-preset pool without introducing new presets. For example, mid-level developers previously assigned eager_learner are reassigned to team_diplomat, and senior developers previously assigned pragmatic_builder receive varying presets depending on template context. No structural changes to templates, control flow, or non-preset fields are introduced.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'feat: diversify personality preset assignments across templates' clearly and concisely describes the main change—diversifying personality preset assignments across multiple template files.
Description check ✅ Passed The description is directly related to the changeset, providing a summary of preset diversification, fixes for role mismatches, test validation, and per-template change metrics that align with the actual modifications.
Linked Issues check ✅ Passed The pull request successfully addresses all coding objectives from issue #718: diversifies presets per template, fixes Scrum Master/COO and UX role mismatches, assigns all 20 presets, varies by seniority, and restricts changes to YAML files under src/synthorg/templates/builtins/.
Out of Scope Changes check ✅ Passed All changes are within scope: 7 YAML template files modified with personality preset values, and 1 documentation file updated to match template values. No unrelated code or structure changes detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the realism and diversity of agent personalities within the synthorg system's organizational templates. By reassigning and diversifying personality presets across most built-in templates, it ensures a broader range of characteristics for agents, corrects previous role-to-preset misalignments, and fully utilizes all available personality presets. This change aims to create more distinct and nuanced organizational dynamics.

Highlights

  • Personality Preset Diversification: Personality presets have been diversified across six out of seven built-in organizational templates to ensure each organization has a distinct "feel" and utilizes all available presets.
  • Role Mismatch Correction: Specific role mismatches were corrected, such as differentiating the Scrum Master from the COO's 'process_optimizer' preset and distinguishing UX Researchers from UX Designers.
  • Full Preset Utilization: All four previously unused personality presets ('team_diplomat', 'empathetic_mentor', 'rapid_prototyper', 'communication_bridge') are now assigned, ensuring all 20 presets are utilized across templates.
  • Seniority-based Variation: Seniority-based variation was introduced within templates, notably reducing the 'eager_learner' preset's assignment from five templates to two.
  • QA Engineer Preset Diversification: QA Engineer presets were diversified, with the agency QA role now assigned the 'process_optimizer' preset.
  • Design Spec Example Update: The design specification example was updated to accurately reflect the new template values.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@Aureliolo Aureliolo temporarily deployed to cloudflare-preview March 22, 2026 17:44 — with GitHub Actions Inactive
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the personality presets across six of the seven built-in templates to increase diversity and better align personalities with roles. The changes introduce four previously unused presets, ensuring all 20 available presets are now utilized. The overuse of the eager_learner preset is also addressed. Additionally, role-specific presets have been updated to better differentiate related roles like UX Researcher and UX Designer, and to provide unique personalities for roles like COO and Scrum Master. An example in the design documentation has been updated to reflect these changes. The changes are consistent with the stated goals of the pull request.

@Aureliolo Aureliolo merged commit 15487a5 into main Mar 22, 2026
31 checks passed
@Aureliolo Aureliolo deleted the feat/template-personality-presets branch March 22, 2026 17:52
@Aureliolo Aureliolo temporarily deployed to cloudflare-preview March 22, 2026 17:52 — with GitHub Actions Inactive
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 22, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.27%. Comparing base (3045df8) to head (b9d25b0).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #743   +/-   ##
=======================================
  Coverage   92.27%   92.27%           
=======================================
  Files         573      573           
  Lines       29655    29655           
  Branches     2870     2870           
=======================================
  Hits        27365    27365           
  Misses       1810     1810           
  Partials      480      480           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Aureliolo added a commit that referenced this pull request Mar 22, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.4.8](v0.4.7...v0.4.8)
(2026-03-22)


### Features

* add auto_cleanup config and improve update UX
([#741](#741))
([289638f](289638f))
* add reporting lines, escalation paths, and workflow handoffs to
templates ([#745](#745))
([c374cc9](c374cc9))
* differentiate template operational configs
([#742](#742))
([9b48345](9b48345))
* diversify personality preset assignments across templates
([#743](#743))
([15487a5](15487a5))
* improve template metadata -- skill taxonomy, descriptions, tags, and
display names ([#752](#752))
([f333f24](f333f24))


### Bug Fixes

* resolve log analysis findings (Ollama prefix, logging, init)
([#748](#748))
([8f871a4](8f871a4))
* use git tag for dev release container image tags
([#749](#749))
([f30d071](f30d071))
* use subordinate_id/supervisor_id in HierarchyResolver
([#751](#751))
([118235b](118235b))


### Performance

* add long-lived cache headers for content-hashed static assets
([#747](#747))
([4d350b5](4d350b5))
* use worksteal distribution for pytest-xdist
([#750](#750))
([b7dd7de](b7dd7de))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
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.

feat: diversify personality preset assignments across templates

1 participant