feat(fleet): dedicated orchestrator persona, split from planner (#662)
This commit was merged in pull request #662.
This commit is contained in:
@@ -46,10 +46,12 @@ describe('listPersonaClasses (real role library)', () => {
|
||||
|
||||
it('covers marker-less engineering personas via filename + LIBRARY index', async () => {
|
||||
const classes = await listPersonaClasses(rolesDir);
|
||||
// planner/decomposition have a role file but no inline marker (planner aliases
|
||||
// the orchestrator class) — they resolve from the filename + LIBRARY.md row.
|
||||
// planner/decomposition have a role file but no inline marker — they resolve
|
||||
// from the filename + LIBRARY.md row.
|
||||
expect(classes.has('planner')).toBe(true);
|
||||
expect(classes.has('decomposition')).toBe(true);
|
||||
// The dedicated orchestrator persona resolves (inline marker + filename + row).
|
||||
expect(classes.has('orchestrator')).toBe(true);
|
||||
});
|
||||
|
||||
it('returns an empty set for a missing roles dir (graceful)', async () => {
|
||||
@@ -75,11 +77,17 @@ describe('baseline profiles (real library)', () => {
|
||||
|
||||
it('software-delivery has the expected lead, floor, and roster shape', async () => {
|
||||
const profile = await loadProfile('software-delivery', realLib);
|
||||
expect(profile.lead).toBe('planner');
|
||||
expect(profile.floor).toEqual(['planner', 'enhancer']);
|
||||
expect(profile.lead).toBe('orchestrator');
|
||||
expect(profile.floor).toEqual(['orchestrator', 'enhancer']);
|
||||
const code = profile.roster.find((r) => r.class === 'code');
|
||||
expect(code?.multiplicity).toBe(2);
|
||||
expect(code?.reportsTo).toBe('decomposition');
|
||||
// The dedicated orchestrator is the lead seat (no reports_to); the planner is
|
||||
// now a distinct seat that reports to it.
|
||||
const orchestrator = profile.roster.find((r) => r.class === 'orchestrator');
|
||||
expect(orchestrator?.reportsTo).toBeUndefined();
|
||||
const planner = profile.roster.find((r) => r.class === 'planner');
|
||||
expect(planner?.reportsTo).toBe('orchestrator');
|
||||
});
|
||||
|
||||
it('loadProfile throws on an unknown id', async () => {
|
||||
|
||||
Reference in New Issue
Block a user