| description | Orchestrator-workers variant of feature-library-scout for deep per-feature-problem library research. The orchestrator derives the feature-problem list and dispatches one Sonnet worker per problem; each worker ranks candidate libraries by adoption signal (registry downloads, dependents, last release, stars and trend, maintenance, framework/platform fit) relative to the project's ecosystem, grounded in captured REFERENCES.md sources, and returns a typed payload via StructuredOutput; the orchestrator is the sole writer that merges into one FEATURE_LIBRARIES.md and runs the orphan-scan gate (ADR-0038, ADR-0045). Stack-agnostic (npm, PyPI, crates.io, Go, Maven). Use when the product has 3 or more distinct feature problems that each warrant a deep multi-angle read. Do not use for 1-3 problems (use feature-library-scout inline), to pick stack layers (use stack-recommend), to verify framework pattern currency (use stack-currency-check), or with no active task folder (run task-init first). |
| metadata | {"category":"discovery-and-scoping","primary-cursor-mode":"Ask","multi-repo-aware":false,"context-layers-consumed":["memory","retrieved"],"context-layers-produced":["retrieved"],"tools":["Read","Write","Edit","Bash","Glob","Grep","WebFetch","WebSearch","Task"],"x-wos-profiles":["full"],"provenance":"first-party","suggested-model":"claude-sonnet-4-6","orchestrator":true,"workers":[{"role":"feature-problem-analyst","tier":"claude-sonnet-4-6","contract_ref":"commands/_shared/worker-contract.md"}],"max_fanout":12,"convergence":{"pattern":"barrier","timeout_ms":900000,"partial_ok":true},"merge_strategy":"union","worker_input_schema":"{\n \"type\": \"object\",\n \"required\": [\"problem_id\", \"problem_name\", \"candidate_libraries\", \"task_root\", \"references_path\"],\n \"properties\": {\n \"problem_id\": {\"type\": \"string\", \"pattern\": \"^[a-z0-9-]+$\"},\n \"problem_name\": {\"type\": \"string\"},\n \"stack\": {\"type\": \"string\"},\n \"candidate_libraries\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"required\": [\"name\"],\n \"properties\": {\n \"name\": {\"type\": \"string\"},\n \"source_urls\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}\n }\n }\n },\n \"task_root\": {\"type\": \"string\"},\n \"references_path\": {\"type\": \"string\"}\n }\n}\n","worker_output_schema":"{\n \"type\": \"object\",\n \"required\": [\"status\", \"problem_id\", \"candidates\", \"recommended_pick\"],\n \"properties\": {\n \"status\": {\"enum\": [\"satisfied\", \"needs_revision\", \"max_iterations_reached\", \"failed\", \"interrupted\"]},\n \"problem_id\": {\"type\": \"string\"},\n \"candidates\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"required\": [\"library\", \"source_refs\"],\n \"properties\": {\n \"library\": {\"type\": \"string\"},\n \"registry_downloads\": {\"type\": \"string\"},\n \"dependents\": {\"type\": \"string\"},\n \"last_release\": {\"type\": \"string\"},\n \"release_cadence\": {\"type\": \"string\"},\n \"stars_and_trend\": {\"type\": \"string\"},\n \"maintenance_health\": {\"type\": \"string\"},\n \"framework_platform_fit\": {\"type\": \"string\"},\n \"license\": {\"type\": \"string\"},\n \"source_refs\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}\n }\n }\n },\n \"recommended_pick\": {\"type\": \"string\"},\n \"recommendation_reason\": {\"type\": \"string\"},\n \"alternatives\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}},\n \"gaps\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}}\n }\n}\n"} |