ai/opencode/tech-team/skills/team-discovery/SKILL.md
Discovery + naming convention reference for typed dev/SME/QA/devops team members in any workspace folder. Primary consumer: `tech-lead` (org-tier).
npx skillsauth add akshay-na/dotfiles team-discoveryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
tech-lead about to assign work to project agents.discover(workspace_roots) → map<root, roles[]>For each directory root in workspace_roots, run discovery against that root’s agent pool (multi-folder workspaces repeat this per root).
Before assigning any work (for both direct tasks and plan-driven phases), for each root:
{root}/.opencode/agents/ that match team patterns (dev-*, reviewer-*, sme-*, qa-*, devops).parallelizable flag.| Agent | Scope | Parallelizable |) that you use to decide assignments and execution strategy.Output: map<root, roles[]> where roles[] is the ordered list of discovered typed agents (and their metadata from the table) for that root.
classify(touches[]) → map<root, touches_subset[]>Longest-prefix-match: For each path in touches[], assign it to exactly one root in workspace_roots by choosing the longest root path such that the touch path is contained under that root (normalized path-prefix containment). Ties or unclear containment must not be broken by arbitrary choice.
on_ambiguous: ask_user invariant: If longest-prefix-match yields a tie (two or more roots equally qualify), no qualifying root, or ambiguity after path normalization, do not infer — ask the user which root owns the touch before proceeding to dispatch.
Output: map<root, touches_subset[]> aggregating, per root, the subset of touches[] assigned to that root. Every classified touch appears under exactly one root once disambiguation is complete.
dispatch(map<root, touches[]>)Apply assignment rules when turning classified touches into agent work:
dev-1 owns frontend, frontend tasks go to dev-1.cto, or trigger team refresh (vp-onboarding) — never implement it yourself.sme-*.qa-* agents and assign test creation/update as a follow-up.Dispatch phase output schema — emit, for each (root, role) tuple the orchestrator dispatches to:
fanout_hint:
recommended_instances: <int>
partition_basis: <"path-prefix" | "module" | "service" | "single">
disjoint_groups: <int>
fanout_hint calculation rule:
classify, consider the touch set planned for a single (root, role). Partition it into disjoint touch groups (non-overlapping file sets; use path-prefix or plan-supplied module/service boundaries when applicable). Let disjoint_groups be that count.disjoint_groups >= 2: set recommended_instances = min(disjoint_groups, 8). Set partition_basis to "path-prefix", "module", or "service" according to how those groups were formed.disjoint_groups < 2: set recommended_instances: 1, partition_basis: "single", and disjoint_groups to the actual count (0 or 1).tech-lead: org-tier orchestrator; this checklist applies when tech-lead invokes project agents inside a workspace root.dev-<scope>:
dev-frontend, dev-backend, dev-infra, dev-tests.sme-<domain>:
sme-payments, sme-ml, sme-data.qa-<scope>:
qa-unit, qa-e2e, qa-manual.devops:
brain-memory-kb (mode: memory) following brain-conventions.project.<name>, project.<name>.<domain>, org.global.vp-research rather than calling docs MCPs directly.tech-lead passes each agent:
devops
Automated task classification, agent selection, and state tracking. Use when routing tasks to agents, selecting pipelines, or managing task state.
testing
Use when designing scalable systems, evaluating consistency models, planning state management, making architectural decisions, or when trade-offs around coupling, failure isolation, and reversibility need explicit reasoning before implementation.
tools
CTO/tech-lead helper — split work into disjoint shard briefs with caps (instance_cap, partition_basis, determinism keys).
testing
Deterministic aggregation of shard results — lexical ordering + schema-checked bundle merges.