Support global / user-level skill trees (e.g. ~/.agents/skills), not just project-relative
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
Línea de trabajo
Empieza con src/bmad_loop/cli.py _skill_trees y sigue la resolución de skills hasta src/bmad_loop/install.py, incluyendo resolve_dev_primitive, missing_base_skills, las comprobaciones de revisión y el diseño de init. Lee el validador en src/bmad_loop/adapters/profile.py y ejecuta el escenario indicado bmad-loop validate --project <proj>. Se considera terminado cuando los skill trees compatibles, ya sean de nivel de usuario o explícitos, se encuentren de forma coherente mediante la validación, el dispatch, el provisioning y la instalación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
bmad-loop's skill lookup treats every skill_tree as a project-relative path and resolves
it strictly as {project_root}/{skill_tree}. It never expands ~ or consults a user-level
skills directory, and the CLI-profile validator additionally rejects absolute/sibling
(..) spellings of skill_tree. So skills that live in the user's global
~/.agents/skills (the tree DSH, Codex, Gemini, Copilot, etc. load) are invisible to
bmad-loop validate unless the project happens to carry its own copy or a junction back to
the user directory.
Environment
- bmad-loop 0.11.1 (Windows 11,
win32) - Policy adapter:
opencode-http(but the same applies tocodex/gemini/etc. profiles,
whose shippedskill_treeis.agents/skills) - The host keeps the BMAD/DSH dev+review skills in the global
C:\Users\<user>\.agents\skills
(bmad-build-auto,bmad-review, …) — the same tree the local agents already use.
Expected behavior
A user whose skills live in ~/.agents/skills should be able to point bmad-loop at that
tree and have validate (and dev/review dispatch) find them — ideally by letting
skill_tree accept a ~-expanded / absolute path, or by falling back to a user-level
candidate directory when the project-relative path is absent.
Actual behavior / repro (as-is)
- In a project set
.bmad-loop/policy.toml[adapter] name = "opencode-http"(shipped
skill_tree = ".agents/skills"). - Have
C:\Users\<user>\.agents\skills\bmad-build-auto\SKILL.mdand
bmad-review\SKILL.mdpresent (global). bmad-loop validate --project <proj>reports:
even though the skills exist globally. The only way to make it green without installing aFAIL: .agents/skills/bmad-build-auto not found — … FAIL: .agents/skills/bmad-review-adversarial-general not found — … FAIL: .agents/skills/bmad-review-edge-case-hunter not found — …
project-local copy is a directory junction{project}/.agents/skills -> ~/.agents/skills
(gitignored), which is a per-machine hack that does not survive clone/CI.
Root-cause pointers
- Skill trees are collected per profile at
cli.py_skill_trees:trees.append(get_profile(name, project).skill_tree)
— a bare relative string. - Every lookup then joins it onto the project root, e.g. in
install.py:resolve_dev_primitive:_is_file(project / tree / <dev_primitive> / "SKILL.md")missing_base_skills:project / tree / <skill> / "SKILL.md"and the review-layers/
consolidated checksproject / tree / MERGED_REVIEW_SKILL / "SKILL.md"- all of which are
project / tree, neverPath.home() / tree.
- The validator refuses non-project-relative skill trees in
adapters/profile.py_validate_profile:
skill_treemust satisfy
not names_tree_root(...) and not is_absolute_path(...) and not has_parent_ref(...)
(project-relative path) — so a user cannot simply setskill_tree = "~/…"or an
absolute path today.
Requested change
- Let
skill_treeaccept a~-prefix (expanded viaPath.expanduser()) and/or an absolute
path, and honor it when resolving skill locations (validate + dispatch + worktree
provisioning). - Alternatively/additionally: when the project-relative tree is absent, fall back to a
user-level candidate (~/.agents/skills, per the same.agents/skillsconvention) so a
global install is honored without any project scaffolding. - Consistency: apply the same resolution wherever skills are probed/loaded
(_skill_trees,resolve_dev_primitive,missing_base_skills, the review/renderer
checks, andinstall'sbmad-loop initskill layout).
Notes
- This is a companion to the bmad-loop ↔ BMAD-METHOD config-layout version mismatch; on a
fresh project with current tooling,validatecan only be brought to green by
non-portable project scaffolding (junction/copy). Supporting a user-level skill tree
removes that need. - Happy to run probe commands or provide full
validateoutput / a minimal project layout
if useful.
- Lenguaje dominante
- Python
- Estrellas
- 146
- Forks
- 68
- Merge medio
- 2 d 12 h
- PR fusionados (30 d)
- 41
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de bmad-code-org/bmad-loop
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
bmad-code-org/bmad-loop#835 ·
Los mantenedores suelen responder en 1 día
-
no-artifact with no hint when story specs live in a subfolder (non-recursive artifact glob)Posiblemente ocupada @ahcrm-core la tomó hace 15 días. Abiertoarea:adapters enhancement good first issue P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
bmad-code-org/bmad-loop#780 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
area:adapters area:psmux bug P4
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
bmad-code-org/bmad-loop#673 · 8 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
TUI mirrors a parked permission prompt but offers no way to answer it before Claude Code auto-deniesAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
bmad-code-org/bmad-loop#855 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
bmad-code-org/bmad-loop#847 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
Todos los issues de bmad-code-org/bmad-loop
Issues similares
-
Device Details tables: FS/SF columns contradict each other (nfet_01v8 Vt row, pfet_01v8 Idsat row)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
google/skywater-pdk#450 ·
-
Drained trajectory arrays are overwritten when the sequence buffer is reusedPosiblemente ocupada @sylvesterkaczmarek la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
google-deepmind/bsuite#56 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
LearningCircuit/local-deep-research#7206 ·
Los mantenedores suelen responder en 1 día
-
[TASK] Document technology stackAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
chingu-voyages/V62-tier3-team-33#285 ·
Los mantenedores suelen responder en 1 día
-
Proxy drops log notifications from backends that don't send FastMCP's msg/extra dictPosiblemente ocupada @asasemahmed la tomó hoy. Abiertobug server
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día