mirror of
https://github.com/MaksTinyWorkshop/_Assistant_Lead_Tech
synced 2026-05-18 08:18:15 +02:00
fix(bmad): align customize.yaml strict mode with workflows (Phase 2)
Les workflows dev-story appellent validate_plan/validate_patch en
strict=true depuis le commit 355d613, mais les customize.yaml
correspondants disaient encore strict=false. Le workflow surcharge le
customize au moment de l'exécution, donc pas de bug fonctionnel — mais
la lecture du customize seul donnait une fausse impression du rollout.
Changements :
- bmm-dev : strict=true sur validate_plan et validate_patch + memory
Phase 2 partielle remplaçant la mention 'advisory-first'.
- bmm-quick-flow-solo-dev : idem, quick-flow ne contourne pas le strict.
- bmm-qa : strict=false maintenu volontairement (le blocage a déjà eu
lieu côté dev) avec commentaire YAML qui explique le choix, et memory
reformulée pour Phase 2.
This commit is contained in:
@@ -16,13 +16,13 @@ persona:
|
|||||||
# Add custom critical actions (appended after standard config loading)
|
# Add custom critical actions (appended after standard config loading)
|
||||||
critical_actions:
|
critical_actions:
|
||||||
- "Before any development task, run: `bash $LEADTECH/scripts/sync-projects-conf.sh --project-root {project-root} --sync-existing`"
|
- "Before any development task, run: `bash $LEADTECH/scripts/sync-projects-conf.sh --project-root {project-root} --sync-existing`"
|
||||||
- "Before implementation, call Leadtech MCP `validate_plan(domain, plan_text, agent_role='builder', strict=false)` and record the result in `Leadtech MCP Gates`."
|
- "Before implementation, call Leadtech MCP `validate_plan(domain, plan_text, agent_role='builder', strict=true)` and record the result in `Leadtech MCP Gates`. Treat blocking_issues as hard blockers — explicit user override required to proceed."
|
||||||
- "After producing a diff, call Leadtech MCP `validate_patch(domain, diff_text, changed_files, strict=false)` and record the result in the Dev Agent Record."
|
- "After producing a diff, call Leadtech MCP `validate_patch(domain, diff_text, changed_files, strict=true)` and record the result in the Dev Agent Record. Treat blocking_issues as hard blockers before moving the story to review."
|
||||||
|
|
||||||
# Add persistent memories for the agent
|
# Add persistent memories for the agent
|
||||||
memories:
|
memories:
|
||||||
- "When a reusable pattern, difficult bug fix, anti-pattern, or architecture decision emerges during implementation, write a proposal to $LEADTECH/95_a_capitaliser.md (Mac: ~/AI_RULES/_Assistant_Lead_Tech/95_a_capitaliser.md ; NUC: /srv/helpers/_Assistant_Lead_Tech/95_a_capitaliser.md). Format: DATE — base / FILE_UPDATE_PROPOSAL / Fichier cible: <knowledge/backend/patterns/<theme>.md | knowledge/frontend/patterns/<theme>.md | knowledge/backend/risques/<theme>.md | knowledge/frontend/risques/<theme>.md | 90_debug_et_postmortem.md> / Pourquoi: <reason> / Proposition: <content>. Never write directly to Lead_tech validated files."
|
- "When a reusable pattern, difficult bug fix, anti-pattern, or architecture decision emerges during implementation, write a proposal to $LEADTECH/95_a_capitaliser.md (Mac: ~/AI_RULES/_Assistant_Lead_Tech/95_a_capitaliser.md ; NUC: /srv/helpers/_Assistant_Lead_Tech/95_a_capitaliser.md). Format: DATE — base / FILE_UPDATE_PROPOSAL / Fichier cible: <knowledge/backend/patterns/<theme>.md | knowledge/frontend/patterns/<theme>.md | knowledge/backend/risques/<theme>.md | knowledge/frontend/risques/<theme>.md | 90_debug_et_postmortem.md> / Pourquoi: <reason> / Proposition: <content>. Never write directly to Lead_tech validated files."
|
||||||
- "Leadtech MCP is advisory-first: if `validate_patch(..., strict=false)` returns `blocking_issues`, do not mark the story `done` directly; move it to `review` unless the deviation is explicitly justified."
|
- "Leadtech MCP is in Phase 2 partielle (strict ciblé): blocking_issues from validate_plan/validate_patch are hard blockers requiring explicit user override. Trace the override and its rationale in the `Leadtech MCP Gates` section of the story."
|
||||||
# Example:
|
# Example:
|
||||||
# memories:
|
# memories:
|
||||||
# - "User prefers detailed technical explanations"
|
# - "User prefers detailed technical explanations"
|
||||||
|
|||||||
@@ -16,12 +16,14 @@ persona:
|
|||||||
# Add custom critical actions (appended after standard config loading)
|
# Add custom critical actions (appended after standard config loading)
|
||||||
critical_actions:
|
critical_actions:
|
||||||
- "Before any QA/review/test task, run: `bash $LEADTECH/scripts/sync-projects-conf.sh --project-root {project-root} --sync-existing`"
|
- "Before any QA/review/test task, run: `bash $LEADTECH/scripts/sync-projects-conf.sh --project-root {project-root} --sync-existing`"
|
||||||
|
# QA reste advisory (strict=false) volontairement : les blocages stricts ont déjà été pris côté dev (Phase 2 partielle).
|
||||||
|
# Si un blocking_issues remonte ici, c'est un signal qu'un override dev n'a pas été correctement traité.
|
||||||
- "During review, call Leadtech MCP `emit_checklist(agent_role='reviewer', domain, story_text)` and `validate_patch(domain, diff_text, changed_files, strict=false)` before accepting `done`."
|
- "During review, call Leadtech MCP `emit_checklist(agent_role='reviewer', domain, story_text)` and `validate_patch(domain, diff_text, changed_files, strict=false)` before accepting `done`."
|
||||||
|
|
||||||
# Add persistent memories for the agent
|
# Add persistent memories for the agent
|
||||||
memories:
|
memories:
|
||||||
- "When a reusable test pattern, tricky bug, or quality anti-pattern is identified, write a proposal to $LEADTECH/95_a_capitaliser.md (Mac: ~/AI_RULES/_Assistant_Lead_Tech/95_a_capitaliser.md ; NUC: /srv/helpers/_Assistant_Lead_Tech/95_a_capitaliser.md). Format: DATE — base / FILE_UPDATE_PROPOSAL / Fichier cible: <knowledge/frontend/patterns/tests.md | knowledge/frontend/risques/tests.md | knowledge/workflow/risques/story-tracking.md | 90_debug_et_postmortem.md> / Pourquoi: <reason> / Proposition: <content>. Never write directly to Lead_tech validated files."
|
- "When a reusable test pattern, tricky bug, or quality anti-pattern is identified, write a proposal to $LEADTECH/95_a_capitaliser.md (Mac: ~/AI_RULES/_Assistant_Lead_Tech/95_a_capitaliser.md ; NUC: /srv/helpers/_Assistant_Lead_Tech/95_a_capitaliser.md). Format: DATE — base / FILE_UPDATE_PROPOSAL / Fichier cible: <knowledge/frontend/patterns/tests.md | knowledge/frontend/risques/tests.md | knowledge/workflow/risques/story-tracking.md | 90_debug_et_postmortem.md> / Pourquoi: <reason> / Proposition: <content>. Never write directly to Lead_tech validated files."
|
||||||
- "In advisory rollout, any Leadtech MCP `blocking_issues` during review requires an explicit accept/reject rationale in `Leadtech MCP Gates`; never accept `done` silently on a flagged story."
|
- "In Phase 2 partielle, a `blocking_issues` surfacing in QA review (despite strict=false) means the dev override was not properly traced — refuse `done` until the override and its rationale are explicit in `Leadtech MCP Gates`."
|
||||||
# Example:
|
# Example:
|
||||||
# memories:
|
# memories:
|
||||||
# - "User prefers detailed technical explanations"
|
# - "User prefers detailed technical explanations"
|
||||||
|
|||||||
@@ -16,12 +16,12 @@ persona:
|
|||||||
# Add custom critical actions (appended after standard config loading)
|
# Add custom critical actions (appended after standard config loading)
|
||||||
critical_actions:
|
critical_actions:
|
||||||
- "Before any implementation task, run: `bash $LEADTECH/scripts/sync-projects-conf.sh --project-root {project-root} --sync-existing`"
|
- "Before any implementation task, run: `bash $LEADTECH/scripts/sync-projects-conf.sh --project-root {project-root} --sync-existing`"
|
||||||
- "In quick-flow mode, still call Leadtech MCP `validate_plan(domain, plan_text, agent_role='builder', strict=false)` before coding and `validate_patch(domain, diff_text, changed_files, strict=false)` before declaring the story complete."
|
- "In quick-flow mode, still call Leadtech MCP `validate_plan(domain, plan_text, agent_role='builder', strict=true)` before coding and `validate_patch(domain, diff_text, changed_files, strict=true)` before declaring the story complete. Treat blocking_issues as hard blockers — explicit user override required."
|
||||||
|
|
||||||
# Add persistent memories for the agent
|
# Add persistent memories for the agent
|
||||||
memories:
|
memories:
|
||||||
- "When a reusable pattern, difficult bug fix, anti-pattern, or architecture decision emerges during implementation, write a proposal to $LEADTECH/95_a_capitaliser.md (Mac: ~/AI_RULES/_Assistant_Lead_Tech/95_a_capitaliser.md ; NUC: /srv/helpers/_Assistant_Lead_Tech/95_a_capitaliser.md). Format: DATE — base / FILE_UPDATE_PROPOSAL / Fichier cible: <knowledge/backend/patterns/<theme>.md | knowledge/frontend/patterns/<theme>.md | knowledge/backend/risques/<theme>.md | knowledge/frontend/risques/<theme>.md | 90_debug_et_postmortem.md> / Pourquoi: <reason> / Proposition: <content>. Never write directly to Lead_tech validated files."
|
- "When a reusable pattern, difficult bug fix, anti-pattern, or architecture decision emerges during implementation, write a proposal to $LEADTECH/95_a_capitaliser.md (Mac: ~/AI_RULES/_Assistant_Lead_Tech/95_a_capitaliser.md ; NUC: /srv/helpers/_Assistant_Lead_Tech/95_a_capitaliser.md). Format: DATE — base / FILE_UPDATE_PROPOSAL / Fichier cible: <knowledge/backend/patterns/<theme>.md | knowledge/frontend/patterns/<theme>.md | knowledge/backend/risques/<theme>.md | knowledge/frontend/risques/<theme>.md | 90_debug_et_postmortem.md> / Pourquoi: <reason> / Proposition: <content>. Never write directly to Lead_tech validated files."
|
||||||
- "Quick-flow does not bypass advisory gates: if Leadtech MCP returns `blocking_issues`, the default outcome is `review`, not `done`."
|
- "Quick-flow does not bypass strict gates: if Leadtech MCP returns `blocking_issues` in Phase 2 partielle, halt before proceeding and require explicit user override traced in the `Leadtech MCP Gates` section."
|
||||||
# Example:
|
# Example:
|
||||||
# memories:
|
# memories:
|
||||||
# - "User prefers detailed technical explanations"
|
# - "User prefers detailed technical explanations"
|
||||||
|
|||||||
Reference in New Issue
Block a user