Commit Graph

8 Commits

Author SHA1 Message Date
Brian Madison d4466cc341 fix(skills): address PR review feedback on resolver and installer
Fixes four issues flagged by CodeRabbit on PR #2282:

- SKILL.md conventions now define {skill-root} (used in the resolver
  command on line 16 but previously undefined alongside {project-root}
  and {skill-name}).
- resolve_customization.py: missing or unparsable customize.yaml now
  exits non-zero with an error instead of silently returning {}, so
  the SKILL.md fallback path correctly kicks in on bad --skill paths.
- resolve_customization.py: non-agent top-level keys (e.g. workflow:,
  config:) now deep-merge per the documented "other tables: deep merge"
  rule. Previously override replaced these wholesale, losing unrelated
  fields the user didn't touch.
- installer.js _installSharedScripts: wipe _bmad/scripts/ before copy
  so files removed or renamed in src/scripts (e.g. the
  resolve-customization.js -> resolve_customization.py rename) don't
  linger and get tracked as installed. Also fail fast if src/scripts/
  is missing.
2026-04-18 20:40:10 -05:00
Brian Madison 6a5b814881 refactor(skills): use PEP 723 inline deps + uv run for resolver
BMB standard and Anthropic's Agent Skills spec both reference the
PEP 723 + uv pattern: declare dependencies in an inline script
header, invoke via `uv run` so deps auto-install into a cached
isolated environment on first run.

- resolve_customization.py: add PEP 723 header declaring pyyaml>=6.0
  and requires-python>=3.10.
- Remove src/scripts/requirements.txt (superseded by inline metadata).
- Update 6 agent SKILL.md files to invoke `uv run` instead of `python3`.
- Update docs/how-to/customize-bmad.md to explain the uv requirement
  and the PEP 723 pattern, with a plain-python3 fallback note.
- Refresh the script's ImportError message to point at uv run first.
2026-04-18 20:14:58 -05:00
Brian Madison da5016d34a refactor(skills): switch resolver from Node+yaml to Python+PyYAML
Anthropic's Agent Skills ecosystem leans Python (official doc skills
use Python; the skills spec excludes node_modules from packaged
distributions). Using Python + PyYAML aligns with where the platform
is going, keeps the dependency declared via requirements.txt (scannable
by pip-audit/Dependabot), and eliminates the need to vendor or bundle
an npm package into the repo.

Changes:
- Rewrite src/scripts/resolve-customization.js as
  src/scripts/resolve_customization.py with identical merge semantics.
- Drop vendored yaml@2.8.2 (~135 files, 800KB) from src/scripts/vendor/.
- Declare the dependency via src/scripts/requirements.txt (PyYAML>=6.0).
- Update all 6 agent SKILL.md files to invoke `python3` instead of `node`.
- Update docs/how-to/customize-bmad.md to reflect the Python runtime
  and PyYAML install requirement.
- Remove src/scripts/vendor/** from eslint.config.mjs and .prettierignore.
- Refresh the _installSharedScripts comment (no more yaml bundling).
2026-04-18 17:12:00 -05:00
Brian Madison 4a88d321f7 refactor(skills): rename _bmad/customizations/ to _bmad/custom/
Shorter, cleaner path for user override files. Updates:
- resolver script path lookup + docstring
- all 6 agent SKILL.md fallback paths
- how-to doc examples
- .gitignore (also corrects stale .toml to .yaml)
- validator INSTALL_ONLY_PATHS entry

Extends ESLint CLI-script overrides to cover src/scripts/** and drops an
unused helper from the resolver to satisfy the pre-commit lint gate.
2026-04-18 11:43:22 -05:00
Brian Madison 64d3f02615 feat(skills): switch agent customization to YAML with Node resolver
- Replace per-skill TOML defaults with customize.yaml using v6.1-compatible
  schema (agent.metadata / agent.persona, snake_case fields)
- Port resolve-customization.py to resolve-customization.js (Node); one
  shared copy at src/scripts/, invoked via --skill with three-layer merge
- Restore v6.1 fields: critical_actions, memories, menu; drop start_prompt
- Simplify menu items to {code, description, skill|prompt}; no action field
- Flatten SKILL.md to 8 atomic activation steps, boilerplate below frontmatter
- Tech-writer menu items reference skill-root prompt files via {skill-root}
- Dev agent Critical Actions moved from SKILL.md into customize.yaml
- Add {skill-name} path convention for portable fallback instructions
- Rewrite docs/how-to/customize-bmad.md for the new system
2026-04-18 10:54:49 -05:00
Brian Madison fd798b1592 feat(skills): TOML-based customization for agent skills
Add three-layer TOML customization system (defaults, team, user overrides)
for all six agent skills: analyst, tech-writer, PM, UX designer, architect,
and dev. Includes shared resolver script, updated activation flows, and
revised customization documentation.
2026-04-16 19:08:23 -05:00
Brian 7dd49a452f
refactor: remove bmad-init skill, standardize config loading (#2159)
* refactor: remove bmad-init skill and standardize config loading across all skills

Remove the bmad-init core skill entirely — all agents and workflow skills now
load config directly from their module's config.yaml instead of delegating to
bmad-init as an intermediary. This eliminates the Python script dependency and
simplifies the activation path for every skill.

Changes across all skill types:

- Agents (9 skills): Replace "Load config via bmad-init skill" block with
  direct config loading from `{project-root}/_bmad/bmm/config.yaml`, resolving
  user_name, communication_language, document_output_language,
  planning_artifacts, and project_knowledge

- Workflow skills (12 skills): Standardize INITIALIZATION/Configuration Loading
  sections to a consistent Activation format matching the agent pattern

- bmad-prfaq: Align activation to standard config pattern, convert scripted
  dialogue to outcome-focused instructions (no direct quotes)

- bmad-product-brief: Remove External Skills section referencing bmad-init

- bmad-party-mode: Standardize initialization to Activation format

- bmad-advanced-elicitation: Inline agent_party path instead of config var

- bmad-distillator: Remove unused argument-hint frontmatter

- Delete legacy create-prd/ directory (superseded by bmad-create-prd)

- Delete bmad-init skill entirely: SKILL.md, bmad_init.py, core-module.yaml,
  and test suite

* fix: remove remaining bmad-init references from marketplace.json and distillate examples

Clean up missed references: remove bmad-init from marketplace.json skills
list, replace bmad-init examples in distillate-format-reference.md with
bmad-help/bmad-setup to keep examples valid without referencing a removed skill.

* fix: update broken file references in bmad-edit-prd after create-prd deletion

Point prdPurpose refs from deleted create-prd/data/ to bmad-create-prd/data/
and validationWorkflow ref from create-prd/steps-v/ to bmad-validate-prd/steps-v/.
2026-03-28 20:35:11 -05:00
Brian 0380656de6
refactor: consolidate agents into phase-based skill directories (#2050)
* refactor: consolidate agents into phase-based skill directories

Remove separate agent/workflow/skill directories (src/bmm/agents,
src/bmm/workflows, src/core/skills, src/utility/agent-components) and
reorganize all content into phase-based structures under src/bmm-skills
(1-analysis, 2-plan-workflows, 3-solutioning, 4-implementation) and
src/core-skills. Eliminates the agent/skill distinction by treating
agents as skills within their workflow phase.

* fix: update broken file references to use new bmm-skills paths

* docs: update all references for unified bmad-quick-dev workflow

Remove all references to the old separate bmad-quick-spec and
bmad-quick-dev-new-preview workflows. The new bmad-quick-dev is a
unified workflow that handles intent clarification, planning,
implementation, review, and presentation in a single run.

Updated files across English docs, Chinese translations, source
skill manifests, website diagram, and build tooling.
2026-03-18 01:01:33 -05:00