Clear description of the problem
bmad-agent-builder requires a builder process log at <agent>/.memlog.md for resume detection, and its Analyze workflow writes reports to <agent>/.analysis/<timestamp>/.
However:
scan-path-standards.py flags the required root .memlog.md as a high-severity “Prompt file at skill root” violation.
scan-path-standards.py scans generated .analysis/ Markdown/JSON files, including findings.json, where the Analyze schema requires absolute paths in standards. Those paths are then flagged as non-portable absolute paths.
prepass.py counts generated .analysis/ artifacts as part of the agent tree, so prior HTML reports can inflate token/file metrics for later Analyze runs.
This makes a clean agent appear to fail lint and lets prior analysis output influence subsequent analysis.
Steps to reproduce
-
Create an agent with Agent Builder, ensuring it has the required root-level .memlog.md.
-
Run Analyze on the agent, which creates:
<agent>/.analysis/<timestamp>/findings.json
<agent>/.analysis/<timestamp>/agent-analysis-report.html
<agent>/.analysis/<timestamp>/agent-analysis-report.md
-
Run:
uv run scripts/scan-path-standards.py <agent-path>
uv run scripts/prepass.py <agent-path>
Expected vs actual behavior
Expected
- Root
.memlog.md is treated as Agent Builder operational metadata, not a capability/prompt file.
.analysis/ is treated as generated analysis output and excluded from path lint and pre-pass token/file counting.
- Lint findings reflect only authored Agent files.
Actual
.memlog.md produces a high-severity structure finding.
.analysis/.../findings.json produces high-severity absolute-path findings.
.analysis/ HTML/Markdown/JSON files are included in pre-pass metrics.
Proposed fix
- In
scan-path-standards.py:
- Exempt root
.memlog.md from the “only SKILL.md at root” rule.
- Exclude
.analysis/ from scanned Markdown/JSON files.
- In
prepass.py:
- Add
.analysis to skipped directories.
Your environment
- Model: GPT-5 / Codex
- IDE: Codex Desktop
- BMad version: 6.11.0
- OS: macOS
- Python runner:
uv
Clear description of the problem
bmad-agent-builderrequires a builder process log at<agent>/.memlog.mdfor resume detection, and its Analyze workflow writes reports to<agent>/.analysis/<timestamp>/.However:
scan-path-standards.pyflags the required root.memlog.mdas a high-severity “Prompt file at skill root” violation.scan-path-standards.pyscans generated.analysis/Markdown/JSON files, includingfindings.json, where the Analyze schema requires absolute paths instandards. Those paths are then flagged as non-portable absolute paths.prepass.pycounts generated.analysis/artifacts as part of the agent tree, so prior HTML reports can inflate token/file metrics for later Analyze runs.This makes a clean agent appear to fail lint and lets prior analysis output influence subsequent analysis.
Steps to reproduce
Create an agent with Agent Builder, ensuring it has the required root-level
.memlog.md.Run Analyze on the agent, which creates:
Run:
Expected vs actual behavior
Expected
.memlog.mdis treated as Agent Builder operational metadata, not a capability/prompt file..analysis/is treated as generated analysis output and excluded from path lint and pre-pass token/file counting.Actual
.memlog.mdproduces a high-severity structure finding..analysis/.../findings.jsonproduces high-severity absolute-path findings..analysis/HTML/Markdown/JSON files are included in pre-pass metrics.Proposed fix
scan-path-standards.py:.memlog.mdfrom the “only SKILL.md at root” rule..analysis/from scanned Markdown/JSON files.prepass.py:.analysisto skipped directories.Your environment
uv