feat(teams): effective-team precedence resolver for the planner (#3152) - #4284
Open
kevinthelago wants to merge 1 commit into
Open
feat(teams): effective-team precedence resolver for the planner (#3152)#4284kevinthelago wants to merge 1 commit into
kevinthelago wants to merge 1 commit into
Conversation
Part of #3151 (Teams-in-Planner epic). Adds the pure precedence rule a project's effective team resolves by: its own per-project binding wins once set, else the blueprint's embedded team, else none. Exported from the feature barrel for the planner's teamFleet.ts to compose once its plan.db binding + `bsc plan team get/set` CLI land (crates/plandb + src/features/planner are outside this stream's write scope — the bsc-scope hook confirmed it; see bsc plan request 1 for the remaining plandb/planner-directive half of #3152/#3153). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YGJ8F4XMWtjiKk38U8ewPF
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Part of #3151 (Teams-in-Planner epic). This is the slice of #3152 that's actually inside
teams-personas' owned scope (src/features/teams/**,src/features/personas/**,crates/bsc-teams/**,crates/bsc-persona/**).effectiveTeam()(src/features/teams/lib/effectiveTeam.ts): the pure precedence rule — a project's own per-project team binding wins once set, else the blueprint's embeddedteam(Blueprints carry their own team: embed org configuration (fork-on-attach) + Team author view #2450), else none. Exported from the feature barrel (@/features/teams).bsc teams/bsc personalibrary CLIs, thearchitectStudio session that composes teams via them, the packagedpersona-marketeridentity, andteamRoleStreams' team→fleet seeding (Epic: the team drives the fleet — role-actor team positions seed fleet streams #3101/Team-drives-fleet A-1: pure teamRoleStreams derivation #3102) all pass their existing test suites unchanged.Scope note
The rest of #3152 (a per-project team binding in
plan.db+bsc plan team get|set) and all of #3153 (the planner directive indata/planner/process.md) live incrates/plandb+src/features/planner+src-tauri/data/planner— outside this stream's write scope (confirmed by thebsc-scopehook hard-blocking an attemptedschema.rsedit). Filed asbsc plan request 1for the planner stream to pick up;effectiveTeamis the contract it should compose with itsbsc plan team getbinding once that lands.Test plan
npx vitest run src/features/teams src/features/personas— 148/148 passed (neweffectiveTeam.test.ts: 4/4)npx tsc --noEmit— cleannpx eslint src/features/teams src/features/personas— cleancargo test -p bsc-teams -p bsc-persona— 6/6 passedcargo clippy -p bsc-teams -p bsc-persona --all-targets -- -D warnings— cleanCloses #3152 (partial — see scope note above; the plan.db/planner half is tracked separately).