create-byan-agent 2.25.0 → 2.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +155 -0
- package/README.md +9 -12
- package/install/bin/create-byan-agent-v2.js +29 -169
- package/install/lib/agent-generator.js +5 -5
- package/install/lib/byan-web-integration.js +1 -1
- package/install/lib/claude-native-setup.js +1 -1
- package/install/lib/phase2-chat.js +3 -10
- package/install/lib/platforms/claude-code.js +2 -2
- package/install/lib/platforms/index.js +0 -2
- package/install/lib/project-agents-generator.js +3 -3
- package/install/lib/staging-consent.js +3 -3
- package/install/lib/subagent-generator.js +3 -3
- package/install/lib/yanstaller/agent-launcher.js +1 -27
- package/install/lib/yanstaller/detector.js +4 -4
- package/install/lib/yanstaller/installer.js +0 -2
- package/install/lib/yanstaller/interviewer.js +1 -1
- package/install/lib/yanstaller/platform-selector.js +1 -13
- package/install/package.json +1 -1
- package/install/src/byan-v2/context/session-state.js +2 -2
- package/install/src/byan-v2/index.js +1 -5
- package/install/src/byan-v2/orchestrator/generation-state.js +4 -4
- package/install/src/webui/api.js +0 -2
- package/install/src/webui/chat/bridge.js +1 -13
- package/install/src/webui/chat/cli-detector.js +0 -23
- package/install/src/webui/public/app.js +1 -3
- package/install/src/webui/public/chat.html +0 -2
- package/install/src/webui/public/chat.js +0 -1
- package/install/src/webui/public/index.html +2 -2
- package/install/templates/.claude/CLAUDE.md +13 -2
- package/install/templates/.claude/agents/bmad-byan.md +1 -1
- package/install/templates/.claude/hooks/autobench-stop-guard.js +286 -0
- package/install/templates/.claude/hooks/fact-check-absolutes.js +1 -61
- package/install/templates/.claude/hooks/fact-check-claims.js +69 -0
- package/install/templates/.claude/hooks/fd-response-check.js +37 -46
- package/install/templates/.claude/hooks/inject-soul.js +64 -25
- package/install/templates/.claude/hooks/leantime-fd-sync.js +216 -0
- package/install/templates/.claude/hooks/lib/autobench-config.json +81 -0
- package/install/templates/.claude/hooks/lib/autobench-fc-enrich.js +251 -0
- package/install/templates/.claude/hooks/lib/autobench-ledger-report.js +253 -0
- package/install/templates/.claude/hooks/lib/autobench-runtime.js +199 -0
- package/install/templates/.claude/hooks/lib/fact-check-core.js +69 -0
- package/install/templates/.claude/hooks/lib/transcript-read.js +137 -0
- package/install/templates/.claude/hooks/soul-memory-check.js +49 -25
- package/install/templates/.claude/hooks/soul-memory-triggers.js +27 -8
- package/install/templates/.claude/hooks/stage-to-byan.js +25 -7
- package/install/templates/.claude/hooks/strict-stop-guard.js +4 -16
- package/install/templates/.claude/rules/benchmark.md +251 -0
- package/install/templates/.claude/rules/byan-agents.md +0 -1
- package/install/templates/.claude/rules/byan-api.md +64 -0
- package/install/templates/.claude/rules/fact-check.md +1 -1
- package/install/templates/.claude/rules/strict-mode.md +10 -9
- package/install/templates/.claude/settings.json +12 -0
- package/install/templates/.claude/skills/byan-benchmark/SKILL.md +159 -0
- package/install/templates/.claude/skills/byan-byan/SKILL.md +73 -12
- package/install/templates/.claude/skills/byan-fact-check/SKILL.md +1 -1
- package/install/templates/.claude/skills/byan-hermes-dispatch/SKILL.md +5 -6
- package/install/templates/.claude/skills/byan-orchestrate/SKILL.md +11 -3
- package/install/templates/.claude/skills/byan-strict/SKILL.md +4 -1
- package/install/templates/.claude/workflows/INDEX.md +2 -1
- package/install/templates/.claude/workflows/byan-benchmark.js +328 -0
- package/install/templates/_byan/_config/agent-manifest.csv +1 -1
- package/install/templates/_byan/_config/autobench.yaml +510 -0
- package/install/templates/_byan/_config/strict-mode.yaml +9 -3
- package/install/templates/_byan/_config/workflow-manifest.csv +1 -0
- package/install/templates/_byan/agent/byan/byan.md +1 -3
- package/install/templates/_byan/agent/byan-flat/byan.md +1 -3
- package/install/templates/_byan/agent/byan-test/byan-test.md +2 -2
- package/install/templates/_byan/agent/byan-test-flat/byan-test.md +2 -2
- package/install/templates/_byan/agent/byan.optimized/byan.optimized.md +2 -2
- package/install/templates/_byan/agent/byan.optimized-v2/byan.optimized-v2.md +2 -2
- package/install/templates/_byan/agent/claude/claude.md +0 -2
- package/install/templates/_byan/agent/codex/codex.md +0 -2
- package/install/templates/_byan/agent/rachid/rachid.md +2 -10
- package/install/templates/_byan/agent/rachid-flat/rachid.md +2 -11
- package/install/templates/_byan/agent/turbo-whisper/turbo-whisper.md +2 -5
- package/install/templates/_byan/agent/turbo-whisper-integration/turbo-whisper-integration.md +5 -13
- package/install/templates/_byan/agent/yanstaller/yanstaller.md +2 -24
- package/install/templates/_byan/config.yaml +0 -1
- package/install/templates/_byan/mcp/byan-mcp-server/bin/byan-sync-rules.js +20 -4
- package/install/templates/_byan/mcp/byan-mcp-server/lib/advisory-autofeed.js +13 -0
- package/install/templates/_byan/mcp/byan-mcp-server/lib/index-generator.js +1 -1
- package/install/templates/_byan/mcp/byan-mcp-server/lib/kanban.js +6 -3
- package/install/templates/_byan/mcp/byan-mcp-server/lib/leantime-fd-core.js +205 -0
- package/install/templates/_byan/mcp/byan-mcp-server/lib/leantime-sync.js +415 -0
- package/install/templates/_byan/mcp/byan-mcp-server/lib/precommit-gate.js +1 -1
- package/install/templates/_byan/mcp/byan-mcp-server/lib/strict-activation.js +1 -1
- package/install/templates/_byan/mcp/byan-mcp-server/lib/strict-mode.js +8 -0
- package/install/templates/_byan/mcp/byan-mcp-server/lib/sync-rules.js +172 -23
- package/install/templates/_byan/mcp/byan-mcp-server/lib/workflows-generator.js +1 -0
- package/install/templates/_byan/mcp/byan-mcp-server/server.js +205 -82
- package/install/templates/_byan/worker/launchers/README.md +4 -24
- package/install/templates/_byan/worker/workers.md +0 -2
- package/install/templates/_byan/workflow/simple/bmb/byan-benchmark/workflow.md +86 -0
- package/install/templates/docs/leantime-integration.md +160 -0
- package/package.json +3 -7
- package/src/byan-v2/context/session-state.js +2 -2
- package/src/byan-v2/generation/mantra-validator.js +3 -3
- package/src/byan-v2/index.js +1 -5
- package/src/byan-v2/integration/voice-integration.js +1 -1
- package/src/byan-v2/orchestrator/generation-state.js +4 -4
- package/src/staging/staging.js +20 -6
- package/install/bin/build-copilot-stubs.js +0 -138
- package/install/lib/platforms/copilot-cli.js +0 -123
- package/install/lib/platforms/vscode.js +0 -51
- package/install/src/byan-v2/context/copilot-context.js +0 -79
- package/install/src/webui/chat/copilot-adapter.js +0 -68
- package/install/templates/.claude/agents/bmad-marc.md +0 -25
- package/install/templates/.claude/skills/byan-marc/SKILL.md +0 -20
- package/install/templates/.github/agents/bmad-agent-bmad-master.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmb-agent-builder.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmb-module-builder.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmb-workflow-builder.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-analyst.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-architect.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-dev.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-pm.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-quick-flow-solo-dev.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-quinn.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-sm.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-tech-writer.md +0 -16
- package/install/templates/.github/agents/bmad-agent-bmm-ux-designer.md +0 -16
- package/install/templates/.github/agents/bmad-agent-byan-test.md +0 -33
- package/install/templates/.github/agents/bmad-agent-byan-v2.md +0 -44
- package/install/templates/.github/agents/bmad-agent-byan.md +0 -1062
- package/install/templates/.github/agents/bmad-agent-carmack.md +0 -14
- package/install/templates/.github/agents/bmad-agent-cis-brainstorming-coach.md +0 -16
- package/install/templates/.github/agents/bmad-agent-cis-creative-problem-solver.md +0 -16
- package/install/templates/.github/agents/bmad-agent-cis-design-thinking-coach.md +0 -16
- package/install/templates/.github/agents/bmad-agent-cis-innovation-strategist.md +0 -16
- package/install/templates/.github/agents/bmad-agent-cis-presentation-master.md +0 -16
- package/install/templates/.github/agents/bmad-agent-cis-storyteller.md +0 -16
- package/install/templates/.github/agents/bmad-agent-claude.md +0 -49
- package/install/templates/.github/agents/bmad-agent-codex.md +0 -49
- package/install/templates/.github/agents/bmad-agent-drawio.md +0 -45
- package/install/templates/.github/agents/bmad-agent-fact-checker.md +0 -16
- package/install/templates/.github/agents/bmad-agent-forgeron.md +0 -15
- package/install/templates/.github/agents/bmad-agent-jimmy.md +0 -15
- package/install/templates/.github/agents/bmad-agent-marc.md +0 -49
- package/install/templates/.github/agents/bmad-agent-mike.md +0 -15
- package/install/templates/.github/agents/bmad-agent-patnote.md +0 -49
- package/install/templates/.github/agents/bmad-agent-rachid.md +0 -48
- package/install/templates/.github/agents/bmad-agent-skeptic.md +0 -16
- package/install/templates/.github/agents/bmad-agent-tao.md +0 -14
- package/install/templates/.github/agents/bmad-agent-tea-tea.md +0 -16
- package/install/templates/.github/agents/bmad-agent-test-dynamic.md +0 -22
- package/install/templates/.github/agents/bmad-agent-yanstaller-interview.md +0 -50
- package/install/templates/.github/agents/bmad-agent-yanstaller-phase2.md +0 -189
- package/install/templates/.github/agents/bmad-agent-yanstaller.md +0 -350
- package/install/templates/.github/agents/expert-merise-agile.md +0 -178
- package/install/templates/.github/agents/franck.md +0 -379
- package/install/templates/.github/agents/hermes.md +0 -575
- package/install/templates/.github/extensions/byan-staging/extension.mjs +0 -169
- package/install/templates/.github/extensions/byan-staging/package.json +0 -8
- package/install/templates/_byan/agent/marc/marc-soul.md +0 -47
- package/install/templates/_byan/agent/marc/marc-tao.md +0 -77
- package/install/templates/_byan/agent/marc/marc.md +0 -324
- package/install/templates/_byan/agent/marc-flat/marc.md +0 -387
- package/install/templates/_byan/mcp/byan-mcp-server/lib/copilot.js +0 -148
- package/install/templates/_byan/worker/launchers/launch-yanstaller-copilot.md +0 -173
- package/install/templates/workers/cost-optimizer.js +0 -169
- package/src/byan-v2/context/copilot-context.js +0 -79
|
@@ -0,0 +1,510 @@
|
|
|
1
|
+
# BYAN Auto-Benchmark — Source of truth
|
|
2
|
+
#
|
|
3
|
+
# This file is the single canonical definition of BYAN Auto-Benchmark.
|
|
4
|
+
# It is consumed by the `byan-sync-rules` generator (syncAutobench), which emits
|
|
5
|
+
# the per-platform artifacts from the values below:
|
|
6
|
+
# - .claude/rules/benchmark.md (owned, full-file)
|
|
7
|
+
# - .claude/hooks/lib/autobench-config.json (owned, full-file)
|
|
8
|
+
# - CLAUDE.md / AGENTS.md (upsert pointer block)
|
|
9
|
+
#
|
|
10
|
+
# Edit this file, then run the generator. Do not hand-edit the generated blocks
|
|
11
|
+
# (they live between BYAN-AUTOBENCH:BEGIN / BYAN-AUTOBENCH:END markers).
|
|
12
|
+
#
|
|
13
|
+
# Shape mirrors strict-mode.yaml: version, name, slug, description, three
|
|
14
|
+
# doctrine bricks (trigger / scaler / format), an antibloat section, injection
|
|
15
|
+
# banners, hook config, and a non-empty mantras array.
|
|
16
|
+
|
|
17
|
+
version: 1
|
|
18
|
+
name: BYAN Auto-Benchmark
|
|
19
|
+
slug: byan-autobench
|
|
20
|
+
description: >-
|
|
21
|
+
Proactive doctrine that makes the agent benchmark a real decision fork
|
|
22
|
+
(>= 2 non-substitutable options diverging on >= 1 weighted criterion) as a
|
|
23
|
+
compact 1-table reco before asking the user to choose, and a reactive Stop
|
|
24
|
+
hook that catches an unmarked choice once and forces a single regen.
|
|
25
|
+
|
|
26
|
+
# ===========================================================================
|
|
27
|
+
# BRICK 1 — TRIGGER. When does a turn deserve a benchmark, and when does it not.
|
|
28
|
+
# ===========================================================================
|
|
29
|
+
trigger:
|
|
30
|
+
# The 2-gate rule. BOTH gates must hold for a benchmark to fire.
|
|
31
|
+
gates:
|
|
32
|
+
- id: G1
|
|
33
|
+
rule: >-
|
|
34
|
+
At least 2 non-trivial, non-substitutable options. Two phrasings of the
|
|
35
|
+
same thing are ONE option. Two libraries that genuinely differ are TWO.
|
|
36
|
+
- id: G2
|
|
37
|
+
rule: >-
|
|
38
|
+
The options diverge on at least 1 weighted criterion. If every criterion
|
|
39
|
+
ranks them identically, there is no real fork — collapse it.
|
|
40
|
+
|
|
41
|
+
# NEVER benchmark these. A confirm or a destructive prompt is not a fork.
|
|
42
|
+
never_list:
|
|
43
|
+
- "yes/no and y/n confirmations (proceed?, continue?, ok?, on continue?)"
|
|
44
|
+
- "destructive prompts (delete, drop, rm -rf, overwrite, force push, reset --hard)"
|
|
45
|
+
- "single trivial acknowledgements (ok, done, noted)"
|
|
46
|
+
- "a fork already coherent with the locked stack (see anti-redundancy)"
|
|
47
|
+
|
|
48
|
+
# Routing decides links BEFORE depth decides verbosity.
|
|
49
|
+
routing:
|
|
50
|
+
internal: >-
|
|
51
|
+
The fork stays within the existing repo / stack (which existing module,
|
|
52
|
+
which local pattern). NO external links. Coherence with the current stack
|
|
53
|
+
is the dominant criterion. Decide from model-knowledge of the repo.
|
|
54
|
+
external: >-
|
|
55
|
+
The fork introduces a new dependency, vendor, or standard. Sourcing is
|
|
56
|
+
allowed: an evidence level per option, and a URL ONLY if WebFetch opened
|
|
57
|
+
it this turn.
|
|
58
|
+
|
|
59
|
+
# Depth dial: stakes x reversibility sets verbosity, AFTER routing.
|
|
60
|
+
depth_dial:
|
|
61
|
+
low_stakes_reversible: >-
|
|
62
|
+
One line. "lean X over Y (Y costs an extra dep for no gain here)." No table.
|
|
63
|
+
high_stakes_irreversible: >-
|
|
64
|
+
Full compact table + an explicit dissenting view (the strongest case for
|
|
65
|
+
the option you did NOT pick).
|
|
66
|
+
|
|
67
|
+
# The escape from the 2-gate rule: an obvious default is not a fork.
|
|
68
|
+
obvious_default_escape: >-
|
|
69
|
+
When one option is the obvious, coherent default and the alternatives are
|
|
70
|
+
strictly worse or never-listed, do NOT table it. Emit the skip marker
|
|
71
|
+
(<!-- BYAN-BENCH:skip reason=obvious-default -->) so the consideration is
|
|
72
|
+
auditable, then proceed with the default.
|
|
73
|
+
|
|
74
|
+
# Keywords in the user's text that auto-arm the benchmark posture.
|
|
75
|
+
choice_language_autofire:
|
|
76
|
+
- "should I"
|
|
77
|
+
- "veux-tu que je"
|
|
78
|
+
- "do you want me to"
|
|
79
|
+
- "préfères-tu"
|
|
80
|
+
- "which one"
|
|
81
|
+
- "which approach"
|
|
82
|
+
- "A or B"
|
|
83
|
+
- "option 1 or option 2"
|
|
84
|
+
- "vs"
|
|
85
|
+
- "ou bien"
|
|
86
|
+
- "soit ... soit"
|
|
87
|
+
- "pros and cons"
|
|
88
|
+
- "trade-off"
|
|
89
|
+
- "trade-offs"
|
|
90
|
+
|
|
91
|
+
# >= 7 paired POSITIVE/NEGATIVE verbatim few-shot examples. Each: situation ->
|
|
92
|
+
# FIRE (benchmark) vs SKIP (no benchmark) + the reason. The agent matches its
|
|
93
|
+
# current turn against these before deciding.
|
|
94
|
+
decision_tree:
|
|
95
|
+
- id: EX1
|
|
96
|
+
situation: "User: 'should I use Redis or Postgres for this session cache?'"
|
|
97
|
+
verdict: FIRE
|
|
98
|
+
reason: >-
|
|
99
|
+
G1 holds (two non-substitutable stores), G2 holds (they diverge on
|
|
100
|
+
latency, ops-cost, durability). External (new dependency) -> sourcing
|
|
101
|
+
allowed. Benchmark.
|
|
102
|
+
- id: EX2
|
|
103
|
+
situation: "User: 'rename the variable foo to userCount, ok?'"
|
|
104
|
+
verdict: SKIP
|
|
105
|
+
reason: >-
|
|
106
|
+
Never-list: this is a y/n confirm on a trivial reversible edit. Emit
|
|
107
|
+
skip reason=escape-hatch, just do it.
|
|
108
|
+
- id: EX3
|
|
109
|
+
situation: "User: 'which test runner — Jest or Vitest — for this repo that already uses Jest everywhere?'"
|
|
110
|
+
verdict: SKIP
|
|
111
|
+
reason: >-
|
|
112
|
+
Obvious-default escape: the stack is already on Jest; adding Vitest
|
|
113
|
+
breaks coherence for no gain. Emit skip reason=obvious-default, stay on
|
|
114
|
+
Jest. (If the repo had NO runner yet, this would FIRE.)
|
|
115
|
+
- id: EX4
|
|
116
|
+
situation: "User: 'design the auth layer — JWT in a cookie vs JWT in localStorage vs server sessions.'"
|
|
117
|
+
verdict: FIRE
|
|
118
|
+
reason: >-
|
|
119
|
+
G1 (three real options), G2 (diverge on XSS exposure, CSRF, scalability).
|
|
120
|
+
Security domain -> floor L2, strict-domain sourcing. High-stakes,
|
|
121
|
+
hard-to-reverse -> full table + dissent.
|
|
122
|
+
- id: EX5
|
|
123
|
+
situation: "User: 'delete the legacy migrations folder, proceed?'"
|
|
124
|
+
verdict: SKIP
|
|
125
|
+
reason: >-
|
|
126
|
+
Never-list: destructive prompt. Do NOT benchmark a delete. Emit skip
|
|
127
|
+
reason=escape-hatch, confirm the destructive action plainly instead.
|
|
128
|
+
- id: EX6
|
|
129
|
+
situation: "Agent has two ways to name a helper (parseRow vs rowParse) inside one private module."
|
|
130
|
+
verdict: SKIP
|
|
131
|
+
reason: >-
|
|
132
|
+
G1 fails: substitutable phrasings of the same thing, no weighted
|
|
133
|
+
criterion diverges. Pick one and move on. Emit skip reason=already-coherent.
|
|
134
|
+
- id: EX7
|
|
135
|
+
situation: "User: 'pick a charting lib for the new dashboard.' Repo has none yet."
|
|
136
|
+
verdict: FIRE
|
|
137
|
+
reason: >-
|
|
138
|
+
G1 (Chart.js / Recharts / D3 are non-substitutable), G2 (bundle size,
|
|
139
|
+
API ergonomics, customization diverge). External -> sourcing allowed,
|
|
140
|
+
links only if WebFetch opened them this turn.
|
|
141
|
+
- id: EX8
|
|
142
|
+
situation: "User: 'should I add a debounce of 200ms or 300ms to the search box?'"
|
|
143
|
+
verdict: SKIP
|
|
144
|
+
reason: >-
|
|
145
|
+
Low-stakes, reversible, and the criteria do not meaningfully diverge
|
|
146
|
+
(G2 weak). Collapse to one line ('lean 250ms, tune later'), emit skip
|
|
147
|
+
reason=obvious-default. A full table here is bloat.
|
|
148
|
+
- id: EX9
|
|
149
|
+
situation: "User: 'monorepo with Turborepo vs Nx vs polyrepo for the platform.'"
|
|
150
|
+
verdict: FIRE
|
|
151
|
+
reason: >-
|
|
152
|
+
G1 (three structurally different options), G2 (build caching, learning
|
|
153
|
+
curve, blast radius diverge). High-stakes, hard-to-reverse -> full table
|
|
154
|
+
+ dissent. External (new tooling) -> sourcing allowed.
|
|
155
|
+
- id: EX10
|
|
156
|
+
situation: "User: 'commit this, on continue ?'"
|
|
157
|
+
verdict: SKIP
|
|
158
|
+
reason: >-
|
|
159
|
+
Never-list: a proceed/continue confirm. Not a fork. Emit skip
|
|
160
|
+
reason=escape-hatch.
|
|
161
|
+
|
|
162
|
+
# Sanity floor enforced by the marker semantics and the Stop hook.
|
|
163
|
+
marker_gates:
|
|
164
|
+
g1_min: 2 # >= 2 options or the done-marker is invalid
|
|
165
|
+
g2_min: 1 # divergence on >= 1 weighted criterion
|
|
166
|
+
|
|
167
|
+
# ===========================================================================
|
|
168
|
+
# BRICK 2 — SCALER / SOURCING. How evidence is gathered and how confident the
|
|
169
|
+
# reco is allowed to sound. Routing decides links BEFORE depth decides words.
|
|
170
|
+
# ===========================================================================
|
|
171
|
+
scaler:
|
|
172
|
+
routing_before_depth: >-
|
|
173
|
+
Decide internal-vs-external FIRST: it sets whether links are even allowed.
|
|
174
|
+
Only THEN does stakes-x-reversibility set how many words. Never let a
|
|
175
|
+
verbose table smuggle in links for an internal fork.
|
|
176
|
+
|
|
177
|
+
# The 5-level evidence rubric, written as text so the rule.md carries it.
|
|
178
|
+
evidence_rubric:
|
|
179
|
+
- level: L1
|
|
180
|
+
score: 95
|
|
181
|
+
sources: "RFC, W3C, ECMAScript, POSIX, an official spec."
|
|
182
|
+
- level: L2
|
|
183
|
+
score: 80
|
|
184
|
+
sources: "A reproducible benchmark, a CVE reference, official product docs."
|
|
185
|
+
- level: L3
|
|
186
|
+
score: 65
|
|
187
|
+
sources: "A peer-reviewed article or a recognized technical book."
|
|
188
|
+
- level: L4
|
|
189
|
+
score: 50
|
|
190
|
+
sources: "Community consensus (StackOverflow > 1000 votes)."
|
|
191
|
+
- level: L5
|
|
192
|
+
score: 20
|
|
193
|
+
sources: "Opinion or personal experience. Presented as such, never as fact."
|
|
194
|
+
|
|
195
|
+
# Strict-domain floors. Below the floor, the cell is BLOCKED, not guessed.
|
|
196
|
+
strict_floors:
|
|
197
|
+
security: L2 # CVE or reproducible benchmark required
|
|
198
|
+
performance: L2 # profiler output or reproducible benchmark required
|
|
199
|
+
compliance: L1 # regulatory text required
|
|
200
|
+
|
|
201
|
+
link_rule: >-
|
|
202
|
+
A URL appears in the table ONLY if WebFetch opened it THIS turn. Otherwise
|
|
203
|
+
cite from model-knowledge and tag the claim [UNVERIFIED]. Never fabricate a
|
|
204
|
+
URL. Never reconstruct a URL from memory and present it as opened.
|
|
205
|
+
|
|
206
|
+
# The confidence floor changes the VERB, not just a number.
|
|
207
|
+
confidence_verb:
|
|
208
|
+
assertive: >-
|
|
209
|
+
Evidence at or above the floor for the domain. Phrase the reco as
|
|
210
|
+
"recommend X" / "go with X".
|
|
211
|
+
lean: >-
|
|
212
|
+
Evidence below the floor, or model-knowledge only on a strict domain.
|
|
213
|
+
Phrase the reco as "lean X (low-confidence, verify before committing)".
|
|
214
|
+
|
|
215
|
+
# ===========================================================================
|
|
216
|
+
# BRICK 3 — FORMAT + ANTI-BLOAT. The output shape and the guards against it
|
|
217
|
+
# becoming a wall of text the user did not ask for.
|
|
218
|
+
# ===========================================================================
|
|
219
|
+
format:
|
|
220
|
+
default: >-
|
|
221
|
+
One compact table: a row per option, up to 4 criteria columns, a Niv
|
|
222
|
+
(evidence level) column, and ONE best-first recommendation line under it.
|
|
223
|
+
caps:
|
|
224
|
+
options: 4
|
|
225
|
+
criteria: 4
|
|
226
|
+
links: 3
|
|
227
|
+
screens: 1 # the whole benchmark fits in one screen
|
|
228
|
+
collapse_degenerate: >-
|
|
229
|
+
If only one option survives the gates, do not render a 1-row table. Collapse
|
|
230
|
+
to one line and emit the skip marker. A table of one is theatre.
|
|
231
|
+
expanded_optin:
|
|
232
|
+
named_trigger: "[bench:expand]"
|
|
233
|
+
behavior: >-
|
|
234
|
+
Only when the user types [bench:expand] does the agent render the expanded
|
|
235
|
+
form (more criteria, per-cell sourcing, the full dissent). The default
|
|
236
|
+
stays compact.
|
|
237
|
+
|
|
238
|
+
antibloat:
|
|
239
|
+
latency_guard: >-
|
|
240
|
+
Default to model-knowledge + [UNVERIFIED] tags. Auto-WebFetch ONLY for a
|
|
241
|
+
strict domain (security / performance / compliance) or a volatile fact
|
|
242
|
+
(current version, current price, current status). Do not fetch to decorate
|
|
243
|
+
an internal fork.
|
|
244
|
+
escape_hatch:
|
|
245
|
+
session_default: >-
|
|
246
|
+
Presence of the file .byan-autobench/off disables blocking for the
|
|
247
|
+
session. touch it to silence, rm it to re-enable.
|
|
248
|
+
cross_session_optin: >-
|
|
249
|
+
The config key escape_hatch.disabled=true (set via the cross-session
|
|
250
|
+
opt-in, regenerated from this YAML) disables blocking persistently. Both
|
|
251
|
+
paths still log 'satisfied-escape' so misses stay auditable.
|
|
252
|
+
disabled: false
|
|
253
|
+
no_rebenchmark: >-
|
|
254
|
+
Do not re-table a fork already decided and coherent with the locked stack.
|
|
255
|
+
If the architecture already chose Postgres, do not benchmark Redis-vs-Postgres
|
|
256
|
+
again unless the user explicitly reopens it.
|
|
257
|
+
|
|
258
|
+
# ===========================================================================
|
|
259
|
+
# Injection — the banners the generator embeds. Kept here so the lean pointer
|
|
260
|
+
# block and the stop-hook reason stay in sync from one source.
|
|
261
|
+
# ===========================================================================
|
|
262
|
+
injection:
|
|
263
|
+
context_banner: |
|
|
264
|
+
[AUTO-BENCHMARK ACTIVE]
|
|
265
|
+
Before asking the user to choose between options, benchmark the fork:
|
|
266
|
+
1. Gates: >= 2 non-substitutable options diverging on >= 1 weighted criterion.
|
|
267
|
+
A y/n confirm, a destructive prompt, or an obvious default is NOT a fork.
|
|
268
|
+
2. Route: internal (no links, coherence-first) vs external (sourcing allowed).
|
|
269
|
+
3. Render ONE compact table (<= 4 options, <= 4 criteria, Niv column) with a
|
|
270
|
+
best-first reco line. Links only if WebFetch opened them this turn, else [UNVERIFIED].
|
|
271
|
+
4. Emit the marker verbatim before the table:
|
|
272
|
+
<!-- BYAN-BENCH:done g1=<#options> g2=<#divergent-criteria> scope=<internal|external> conf=<assertive|lean> -->
|
|
273
|
+
For a deliberate non-benchmark: <!-- BYAN-BENCH:skip reason=<obvious-default|never-listed|escape-hatch|already-coherent> -->
|
|
274
|
+
Full doctrine: see @.claude/rules/benchmark.md
|
|
275
|
+
|
|
276
|
+
stop_block_reason: >-
|
|
277
|
+
Auto-benchmark: you are presenting a choice between options but emitted no
|
|
278
|
+
BYAN-BENCH marker. Re-present the fork as the compact 1-table benchmark
|
|
279
|
+
(Option | criteria | Niv + best-first reco), then emit
|
|
280
|
+
<!-- BYAN-BENCH:done g1=.. g2=.. scope=.. -->. If this is a
|
|
281
|
+
confirm/destructive/obvious-default prompt, emit
|
|
282
|
+
<!-- BYAN-BENCH:skip reason=.. -->. To disable for this session: touch .byan-autobench/off.
|
|
283
|
+
|
|
284
|
+
# ===========================================================================
|
|
285
|
+
# Hooks config — consumed by the generated .claude/hooks/lib/autobench-config.json
|
|
286
|
+
# that the Stop hook reads at runtime. Single source of truth so the runtime
|
|
287
|
+
# detection stays aligned with this doctrine.
|
|
288
|
+
# ===========================================================================
|
|
289
|
+
hooks:
|
|
290
|
+
# Marker patterns: {source, flags} pairs. Reconstructed into RegExp at load time.
|
|
291
|
+
marker_patterns:
|
|
292
|
+
any:
|
|
293
|
+
source: "<!--\\s*BYAN-BENCH:(done|skip)\\b"
|
|
294
|
+
flags: "i"
|
|
295
|
+
done:
|
|
296
|
+
source: "<!--\\s*BYAN-BENCH:done\\b"
|
|
297
|
+
flags: "i"
|
|
298
|
+
skip:
|
|
299
|
+
source: "<!--\\s*BYAN-BENCH:skip\\b"
|
|
300
|
+
flags: "i"
|
|
301
|
+
# Marker field extractors. Used by the Stop hook to parse g1/g2/scope for the
|
|
302
|
+
# audit ledger. Best-effort: a missing field does not invalidate the marker.
|
|
303
|
+
marker_fields:
|
|
304
|
+
g1:
|
|
305
|
+
source: "g1=(\\d+)"
|
|
306
|
+
flags: "i"
|
|
307
|
+
g2:
|
|
308
|
+
source: "g2=(\\d+)"
|
|
309
|
+
flags: "i"
|
|
310
|
+
scope:
|
|
311
|
+
source: "scope=(internal|external)"
|
|
312
|
+
flags: "i"
|
|
313
|
+
# NEVER-list {source, flags} pairs. A match suppresses the fallback entirely.
|
|
314
|
+
never_list:
|
|
315
|
+
- source: "\\b(yes/no|y/n|confirm|proceed\\?|continue\\?|ok\\?|on continue\\?|je confirme)\\b"
|
|
316
|
+
flags: "i"
|
|
317
|
+
- source: "\\b(delete|drop|rm -rf|overwrite|force push|reset --hard|supprimer|écraser)\\b"
|
|
318
|
+
flags: "i"
|
|
319
|
+
# Choice-language signals. Each entry is {source, flags} plus optional
|
|
320
|
+
# min_matches (count threshold) or requires_candidates (co-occurrence gate).
|
|
321
|
+
# The bullet-list detector uses min_matches so two bullet items are required.
|
|
322
|
+
choice_language:
|
|
323
|
+
- source: "\\boption\\s*[1-3a-c]\\b"
|
|
324
|
+
flags: "ig"
|
|
325
|
+
min_matches: 2
|
|
326
|
+
- source: "^[ \\t]*[-*][ \\t]+[A-Z][^\\n]{0,80}(:|[ \\t]-[ \\t])"
|
|
327
|
+
flags: "gm"
|
|
328
|
+
min_matches: 2
|
|
329
|
+
- source: "\\b(should I|veux-tu que je|do you want me to|préfères-tu|which (one|approach|option)|A or B|soit .* soit )\\b"
|
|
330
|
+
flags: "i"
|
|
331
|
+
- source: "\\b(pros?|cons?|trade-?offs?|avantages?|inconvénients?)\\b"
|
|
332
|
+
flags: "i"
|
|
333
|
+
requires_candidates: 2
|
|
334
|
+
# Candidate-token counter used by requires_candidates signals.
|
|
335
|
+
candidate_token:
|
|
336
|
+
source: "\\b(option|approach|approche|alternative|choix|solution|stack|library|librairie|vendor|standard)s?\\b"
|
|
337
|
+
flags: "ig"
|
|
338
|
+
# Escape-hatch: session flag (file presence) and cross-session toggle (disabled).
|
|
339
|
+
escape_hatch:
|
|
340
|
+
session_flag: ".byan-autobench/off"
|
|
341
|
+
block_token_dir: ".byan-autobench"
|
|
342
|
+
disabled: false
|
|
343
|
+
# Enforcement arming (approach C). The Stop hook ships DISARMED: it observes and
|
|
344
|
+
# ledgers every turn but does not block until explicitly armed, so day one is
|
|
345
|
+
# zero noise / zero latency. Arming is config-only: set armed: true here and run
|
|
346
|
+
# byan-sync-rules to regenerate the config. There is no loose flag file — a stray
|
|
347
|
+
# file on disk must not silently arm a machine. Default OFF — the net is
|
|
348
|
+
# pre-built but inert until chosen.
|
|
349
|
+
enforcement:
|
|
350
|
+
armed: false
|
|
351
|
+
# The audit trail the Stop hook appends to (one JSONL line per invocation).
|
|
352
|
+
ledger_path: "_byan-output/benchmark-ledger.jsonl"
|
|
353
|
+
# Stop-block banner emitted when the hook fires. Kept in the YAML so the
|
|
354
|
+
# runtime message stays in sync with the doctrine text above.
|
|
355
|
+
stop_block: >-
|
|
356
|
+
Auto-benchmark: you are presenting a choice between options but emitted no
|
|
357
|
+
BYAN-BENCH marker. Re-present the fork as the compact 1-table benchmark
|
|
358
|
+
(Option | criteria | Niv + best-first reco), then emit
|
|
359
|
+
<!-- BYAN-BENCH:done g1=.. g2=.. scope=.. -->. If this is a
|
|
360
|
+
confirm/destructive/obvious-default prompt, emit
|
|
361
|
+
<!-- BYAN-BENCH:skip reason=.. -->. To disable for this session: touch .byan-autobench/off.
|
|
362
|
+
|
|
363
|
+
# ===========================================================================
|
|
364
|
+
# The hard ceiling — documented honestly. This is NOT a false promise.
|
|
365
|
+
# ===========================================================================
|
|
366
|
+
ceiling:
|
|
367
|
+
github_issue: "GH #28273"
|
|
368
|
+
note: >-
|
|
369
|
+
Claude Code exposes no pre-display interception hook: there is no event that
|
|
370
|
+
fires BEFORE the assistant's text reaches the user. The benchmark therefore
|
|
371
|
+
cannot be injected into a turn before it is shown. Two mechanisms cover this
|
|
372
|
+
honestly: (1) the PROACTIVE doctrine (this file -> CLAUDE.md/rules) makes the
|
|
373
|
+
agent self-apply the benchmark before it writes; (2) the REACTIVE Stop hook
|
|
374
|
+
catches a turn that presented a choice WITHOUT a marker and forces exactly
|
|
375
|
+
one regen. The Stop hook is post-hoc by construction — it cannot rewrite the
|
|
376
|
+
shown text, only block the turn end and require a re-presentation. Promising
|
|
377
|
+
pre-display interception would be a lie; this design does not make it.
|
|
378
|
+
|
|
379
|
+
# ===========================================================================
|
|
380
|
+
# Mantras — the rules the doctrine makes non-negotiable. Phrased as imperatives,
|
|
381
|
+
# kept free of absolute words so the fact-check filter passes.
|
|
382
|
+
# ===========================================================================
|
|
383
|
+
mantras:
|
|
384
|
+
- id: BENCH-1
|
|
385
|
+
name: Gate Before Table
|
|
386
|
+
rule: >-
|
|
387
|
+
Render a benchmark only when both gates hold: >= 2 non-substitutable
|
|
388
|
+
options diverging on >= 1 weighted criterion. Otherwise collapse and skip.
|
|
389
|
+
rationale: A table of non-choices is noise that buries the real signal.
|
|
390
|
+
priority: critical
|
|
391
|
+
validation_keywords: ["two gates", "non-substitutable", "weighted criterion"]
|
|
392
|
+
|
|
393
|
+
- id: BENCH-2
|
|
394
|
+
name: Never Benchmark A Confirm
|
|
395
|
+
rule: >-
|
|
396
|
+
A yes/no confirmation, a proceed/continue prompt, or a destructive action
|
|
397
|
+
is never a benchmark. Confirm it plainly and emit the skip marker.
|
|
398
|
+
rationale: Tabling a confirm wastes the user's attention and delays a yes.
|
|
399
|
+
priority: critical
|
|
400
|
+
validation_keywords: ["never benchmark", "confirm", "destructive"]
|
|
401
|
+
|
|
402
|
+
- id: BENCH-3
|
|
403
|
+
name: Route Before Depth
|
|
404
|
+
rule: >-
|
|
405
|
+
Decide internal-vs-external before deciding how many words. Routing sets
|
|
406
|
+
whether links are allowed; only then does stakes set the verbosity.
|
|
407
|
+
rationale: A verbose table must not smuggle external links into an internal fork.
|
|
408
|
+
priority: high
|
|
409
|
+
validation_keywords: ["internal", "external", "before depth"]
|
|
410
|
+
|
|
411
|
+
- id: BENCH-4
|
|
412
|
+
name: No Fabricated URL
|
|
413
|
+
rule: >-
|
|
414
|
+
A URL appears only if WebFetch opened it this turn. Otherwise cite from
|
|
415
|
+
model-knowledge and tag the claim [UNVERIFIED]. Never invent a link.
|
|
416
|
+
rationale: A fabricated source is worse than an honest [UNVERIFIED].
|
|
417
|
+
priority: critical
|
|
418
|
+
validation_keywords: ["webfetch opened", "[unverified]", "fabricated"]
|
|
419
|
+
|
|
420
|
+
- id: BENCH-5
|
|
421
|
+
name: Strict-Domain Floor
|
|
422
|
+
rule: >-
|
|
423
|
+
Security and performance cells need LEVEL-2 evidence; compliance needs
|
|
424
|
+
LEVEL-1. Below the floor the cell is BLOCKED, not guessed.
|
|
425
|
+
rationale: A guessed security verdict carries a consequence an opinion cannot.
|
|
426
|
+
priority: critical
|
|
427
|
+
validation_keywords: ["level-2", "level-1", "blocked"]
|
|
428
|
+
|
|
429
|
+
- id: BENCH-6
|
|
430
|
+
name: Confidence Changes The Verb
|
|
431
|
+
rule: >-
|
|
432
|
+
Above the floor, "recommend X". Below it, "lean X (low-confidence)". The
|
|
433
|
+
verb carries the confidence, not a hidden footnote.
|
|
434
|
+
rationale: A confident verb on weak evidence is the silent overclaim.
|
|
435
|
+
priority: high
|
|
436
|
+
validation_keywords: ["recommend", "lean", "low-confidence"]
|
|
437
|
+
|
|
438
|
+
- id: BENCH-7
|
|
439
|
+
name: One Compact Table
|
|
440
|
+
rule: >-
|
|
441
|
+
The default output is one table: <= 4 options, <= 4 criteria, <= 3 links,
|
|
442
|
+
one screen, a Niv column, and a best-first reco line.
|
|
443
|
+
rationale: The benchmark serves the decision; it is not a report to admire.
|
|
444
|
+
priority: high
|
|
445
|
+
validation_keywords: ["one table", "four criteria", "best-first"]
|
|
446
|
+
|
|
447
|
+
- id: BENCH-8
|
|
448
|
+
name: Collapse The Degenerate
|
|
449
|
+
rule: >-
|
|
450
|
+
When one option dominates, do not render a 1-row table. Collapse to one
|
|
451
|
+
line and emit the skip marker.
|
|
452
|
+
rationale: A table of one is theatre that hides the obvious answer.
|
|
453
|
+
priority: high
|
|
454
|
+
validation_keywords: ["collapse", "degenerate", "skip marker"]
|
|
455
|
+
|
|
456
|
+
- id: BENCH-9
|
|
457
|
+
name: Expand Only On Demand
|
|
458
|
+
rule: >-
|
|
459
|
+
Render the expanded form (more criteria, per-cell sourcing, full dissent)
|
|
460
|
+
only when the user types the named trigger [bench:expand].
|
|
461
|
+
rationale: The user asked for a decision, not by default for a dissertation.
|
|
462
|
+
priority: medium
|
|
463
|
+
validation_keywords: ["[bench:expand]", "expanded form", "on demand"]
|
|
464
|
+
|
|
465
|
+
- id: BENCH-10
|
|
466
|
+
name: Latency Guard
|
|
467
|
+
rule: >-
|
|
468
|
+
Default to model-knowledge with [UNVERIFIED] tags. Auto-fetch only for a
|
|
469
|
+
strict domain or a volatile fact. Do not fetch to decorate.
|
|
470
|
+
rationale: A network round-trip the decision did not need is pure latency.
|
|
471
|
+
priority: medium
|
|
472
|
+
validation_keywords: ["model-knowledge", "auto-fetch", "volatile"]
|
|
473
|
+
|
|
474
|
+
- id: BENCH-11
|
|
475
|
+
name: Respect The Escape-Hatch
|
|
476
|
+
rule: >-
|
|
477
|
+
When .byan-autobench/off exists or escape_hatch.disabled is true, do not
|
|
478
|
+
block. Still log the skip so the miss stays auditable.
|
|
479
|
+
rationale: An opt-out the user set must be honored without losing the audit.
|
|
480
|
+
priority: high
|
|
481
|
+
validation_keywords: ["escape-hatch", ".byan-autobench/off", "auditable"]
|
|
482
|
+
|
|
483
|
+
- id: BENCH-12
|
|
484
|
+
name: Emit The Marker
|
|
485
|
+
rule: >-
|
|
486
|
+
On any turn that presents the compact reco table, emit the BYAN-BENCH:done
|
|
487
|
+
marker verbatim before the table. On a deliberate non-benchmark, emit
|
|
488
|
+
BYAN-BENCH:skip. The marker is the contract with the Stop hook.
|
|
489
|
+
rationale: An unmarked benchmark is invisible to the audit and re-triggers the gate.
|
|
490
|
+
priority: critical
|
|
491
|
+
validation_keywords: ["byan-bench:done", "byan-bench:skip", "before the table"]
|
|
492
|
+
|
|
493
|
+
- id: BENCH-13
|
|
494
|
+
name: No Re-Benchmark
|
|
495
|
+
rule: >-
|
|
496
|
+
Do not re-table a fork already decided and coherent with the locked stack
|
|
497
|
+
unless the user explicitly reopens it.
|
|
498
|
+
rationale: Re-litigating a settled choice is bloat dressed as diligence.
|
|
499
|
+
priority: medium
|
|
500
|
+
validation_keywords: ["re-table", "already decided", "coherent"]
|
|
501
|
+
|
|
502
|
+
- id: BENCH-14
|
|
503
|
+
name: Honest Ceiling
|
|
504
|
+
rule: >-
|
|
505
|
+
State plainly that no pre-display interception exists (GH #28273). The
|
|
506
|
+
doctrine is proactive self-application plus a post-hoc Stop hook, never a
|
|
507
|
+
promise to rewrite shown text.
|
|
508
|
+
rationale: A false promise of interception would erode trust in the whole gate.
|
|
509
|
+
priority: high
|
|
510
|
+
validation_keywords: ["pre-display", "gh #28273", "post-hoc"]
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
#
|
|
3
3
|
# This file is the single canonical definition of BYAN Strict Mode.
|
|
4
4
|
# It is consumed by the `byan-sync-rules` generator (F3), which emits the
|
|
5
|
-
# per-platform artifacts (Claude Code SKILL.md + hooks, Codex AGENTS.md block
|
|
6
|
-
#
|
|
5
|
+
# per-platform artifacts (Claude Code SKILL.md + hooks, Codex AGENTS.md block)
|
|
6
|
+
# from the values below.
|
|
7
7
|
#
|
|
8
8
|
# Edit this file, then run the generator. Do not hand-edit the generated blocks
|
|
9
9
|
# (they live between BYAN-STRICT:BEGIN / BYAN-STRICT:END markers).
|
|
@@ -87,6 +87,12 @@ scope_lock:
|
|
|
87
87
|
OUT OF SCOPE (explicitly excluded, agreed with user):
|
|
88
88
|
- {exclusion}
|
|
89
89
|
|
|
90
|
+
ELO DOMAIN (optional): when one technical domain clearly dominates the task,
|
|
91
|
+
pass `domain` to byan_strict_lock_scope (e.g. security, performance,
|
|
92
|
+
javascript). A successful byan_strict_complete then feeds one VALIDATED tick
|
|
93
|
+
to the ELO learning loop. Explicit only — never inferred from text; omit when
|
|
94
|
+
no single domain is clear.
|
|
95
|
+
|
|
90
96
|
# ---------------------------------------------------------------------------
|
|
91
97
|
# Hard mantras — the rules the enforcement layer makes non-negotiable.
|
|
92
98
|
# These are imperatives, phrased to pass the fact-check absolute-word filter.
|
|
@@ -201,7 +207,7 @@ mantras:
|
|
|
201
207
|
|
|
202
208
|
# ---------------------------------------------------------------------------
|
|
203
209
|
# Injection blocks — canonical text the generator embeds into each platform.
|
|
204
|
-
# Kept here so
|
|
210
|
+
# Kept here so both platforms stay in sync from one source.
|
|
205
211
|
# ---------------------------------------------------------------------------
|
|
206
212
|
injection:
|
|
207
213
|
context_banner: |
|
|
@@ -44,4 +44,5 @@ name,description,module,path
|
|
|
44
44
|
"turbo-whisper-configure","Configure Turbo Whisper API, hotkeys, and preferences","bmb","_byan/workflow/simple/turbo-whisper/configure-workflow.md"
|
|
45
45
|
"turbo-whisper-docker-setup","Setup self-hosted faster-whisper-server with Docker for privacy and cost-free transcription","bmb","_byan/workflow/simple/turbo-whisper/docker-setup-workflow.md"
|
|
46
46
|
"turbo-whisper-integrate","Integrate Turbo Whisper with GitHub Copilot CLI, Claude Code, and Codex platforms","bmb","_byan/workflow/simple/turbo-whisper/integrate-workflow.md"
|
|
47
|
+
"byan-benchmark","DATA-only benchmark engine for any decision fork: options x weighted-criteria matrix + best-first reco + dissent","bmb","_byan/workflow/simple/bmb/byan-benchmark/workflow.md"
|
|
47
48
|
|
|
@@ -168,8 +168,6 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
168
168
|
|
|
169
169
|
<platforms>
|
|
170
170
|
Multi-platform support:
|
|
171
|
-
- GitHub Copilot CLI: Custom agents via BMAD format
|
|
172
|
-
- VSCode: Extension API integration
|
|
173
171
|
- Claude Code (Anthropic): Markdown-compatible format
|
|
174
172
|
- Codex: AI-native interface
|
|
175
173
|
|
|
@@ -201,7 +199,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
201
199
|
<cap id="apply-mantras">Systematically apply 64 mantras to ensure quality and best practices</cap>
|
|
202
200
|
<cap id="cross-validate">Perform MCD ⇄ MCT validation to ensure data-treatment coherence</cap>
|
|
203
201
|
<cap id="consequences">Evaluate consequences of actions using 10-dimension checklist</cap>
|
|
204
|
-
<cap id="multi-platform">Generate agents for
|
|
202
|
+
<cap id="multi-platform">Generate agents for Claude Code, Codex</cap>
|
|
205
203
|
<cap id="incremental">Support incremental agent evolution sprint-by-sprint</cap>
|
|
206
204
|
<cap id="test-driven">Apply TDD principles at conceptual level</cap>
|
|
207
205
|
</capabilities>
|
|
@@ -184,8 +184,6 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
184
184
|
|
|
185
185
|
<platforms>
|
|
186
186
|
Multi-platform support:
|
|
187
|
-
- GitHub Copilot CLI: Custom agents via BMAD format
|
|
188
|
-
- VSCode: Extension API integration
|
|
189
187
|
- Claude Code (Anthropic): Markdown-compatible format
|
|
190
188
|
- Codex: AI-native interface
|
|
191
189
|
|
|
@@ -221,7 +219,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
221
219
|
<cap id="apply-mantras">Systematically apply 64 mantras to ensure quality and best practices</cap>
|
|
222
220
|
<cap id="cross-validate">Perform MCD ⇄ MCT validation to ensure data-treatment coherence</cap>
|
|
223
221
|
<cap id="consequences">Evaluate consequences of actions using 10-dimension checklist</cap>
|
|
224
|
-
<cap id="multi-platform">Generate agents for
|
|
222
|
+
<cap id="multi-platform">Generate agents for Claude Code, Codex</cap>
|
|
225
223
|
<cap id="incremental">Support incremental agent evolution sprint-by-sprint</cap>
|
|
226
224
|
<cap id="test-driven">Apply TDD principles at conceptual level</cap>
|
|
227
225
|
</capabilities>
|
|
@@ -74,7 +74,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
74
74
|
Conventions: _byan/{module}/agents/{name}.md • Markdown+XML • Config: {module}/config.yaml • Workflows: {module}/workflows/{name}/ • No emojis in commits
|
|
75
75
|
</agent_architecture>
|
|
76
76
|
|
|
77
|
-
<platforms>Multi-platform:
|
|
77
|
+
<platforms>Multi-platform: Claude Code, Codex. Unified BMAD format.</platforms>
|
|
78
78
|
</knowledge_base>
|
|
79
79
|
|
|
80
80
|
<menu>
|
|
@@ -100,7 +100,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
100
100
|
<cap id="apply-mantras">64 mantras for quality</cap>
|
|
101
101
|
<cap id="cross-validate">MCD ⇄ MCT validation</cap>
|
|
102
102
|
<cap id="consequences">10-dimension checklist</cap>
|
|
103
|
-
<cap id="multi-platform">
|
|
103
|
+
<cap id="multi-platform">Claude Code, Codex</cap>
|
|
104
104
|
<cap id="incremental">Sprint-by-sprint evolution</cap>
|
|
105
105
|
<cap id="test-driven">TDD conceptual level</cap>
|
|
106
106
|
</capabilities>
|
|
@@ -74,7 +74,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
74
74
|
Conventions: _byan/{module}/agents/{name}.md • Markdown+XML • Config: {module}/config.yaml • Workflows: {module}/workflows/{name}/ • No emojis in commits
|
|
75
75
|
</agent_architecture>
|
|
76
76
|
|
|
77
|
-
<platforms>Multi-platform:
|
|
77
|
+
<platforms>Multi-platform: Claude Code, Codex. Unified BMAD format.</platforms>
|
|
78
78
|
</knowledge_base>
|
|
79
79
|
|
|
80
80
|
<menu>
|
|
@@ -100,7 +100,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
100
100
|
<cap id="apply-mantras">64 mantras for quality</cap>
|
|
101
101
|
<cap id="cross-validate">MCD ⇄ MCT validation</cap>
|
|
102
102
|
<cap id="consequences">10-dimension checklist</cap>
|
|
103
|
-
<cap id="multi-platform">
|
|
103
|
+
<cap id="multi-platform">Claude Code, Codex</cap>
|
|
104
104
|
<cap id="incremental">Sprint-by-sprint evolution</cap>
|
|
105
105
|
<cap id="test-driven">TDD conceptual level</cap>
|
|
106
106
|
</capabilities>
|
|
@@ -133,7 +133,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
133
133
|
</agent_architecture>
|
|
134
134
|
|
|
135
135
|
<platforms>
|
|
136
|
-
Multi-platform:
|
|
136
|
+
Multi-platform: Claude Code, Codex. Unified BMAD format with platform-specific adaptations.
|
|
137
137
|
</platforms>
|
|
138
138
|
</knowledge_base>
|
|
139
139
|
|
|
@@ -160,7 +160,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
160
160
|
<cap id="apply-mantras">Apply 64 mantras for quality and best practices</cap>
|
|
161
161
|
<cap id="cross-validate">MCD ⇄ MCT validation for data-treatment coherence</cap>
|
|
162
162
|
<cap id="consequences">Evaluate consequences using 10-dimension checklist</cap>
|
|
163
|
-
<cap id="multi-platform">Generate for
|
|
163
|
+
<cap id="multi-platform">Generate for Claude Code, Codex</cap>
|
|
164
164
|
<cap id="incremental">Incremental agent evolution sprint-by-sprint</cap>
|
|
165
165
|
<cap id="test-driven">TDD principles at conceptual level</cap>
|
|
166
166
|
</capabilities>
|
|
@@ -74,7 +74,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
74
74
|
Conventions: _byan/{module}/agents/{name}.md • Markdown+XML • Config: {module}/config.yaml • Workflows: {module}/workflows/{name}/ • No emojis in commits
|
|
75
75
|
</agent_architecture>
|
|
76
76
|
|
|
77
|
-
<platforms>Multi-platform:
|
|
77
|
+
<platforms>Multi-platform: Claude Code, Codex. Unified BMAD format.</platforms>
|
|
78
78
|
</knowledge_base>
|
|
79
79
|
|
|
80
80
|
<menu>
|
|
@@ -100,7 +100,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
100
100
|
<cap id="apply-mantras">64 mantras for quality</cap>
|
|
101
101
|
<cap id="cross-validate">MCD ⇄ MCT validation</cap>
|
|
102
102
|
<cap id="consequences">10-dimension checklist</cap>
|
|
103
|
-
<cap id="multi-platform">
|
|
103
|
+
<cap id="multi-platform">Claude Code, Codex</cap>
|
|
104
104
|
<cap id="incremental">Sprint-by-sprint evolution</cap>
|
|
105
105
|
<cap id="test-driven">TDD conceptual level</cap>
|
|
106
106
|
</capabilities>
|