create-byan-agent 2.48.0 → 2.49.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 +31 -0
- package/install/package.json +1 -1
- package/install/templates/.claude/CLAUDE.md +21 -13
- package/install/templates/.claude/hooks/codex-autodelegate.js +19 -2
- package/install/templates/.claude/hooks/lib/autodelegate-decision.js +11 -7
- package/install/templates/.claude/rules/agent-entry-gate.md +40 -20
- package/install/templates/.claude/skills/byan-byan/SKILL.md +52 -26
- package/install/templates/_byan/mcp/byan-mcp-server/skill-bundles-manifest.json +1 -1
- package/install/templates/dist/skill-bundles/byan-byan.zip +0 -0
- package/install/templates/docs/codex-auto-delegation.md +18 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [2.49.0] - 2026-07-16
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- Chaine d'entree BYAN v2 dans le skill `byan-byan` (section 0) : comprendre la
|
|
16
|
+
demande -> point de controle de plan uniquement sur doute -> dispatch Hermes
|
|
17
|
+
automatique (agent + modele + effort) -> execution party-mode avec visuel live
|
|
18
|
+
-> point de controle utilisateur en fin. L'humain reste requis seulement pour
|
|
19
|
+
creer un nouvel agent, confirmer un destructif, ou trancher un plan en cas de
|
|
20
|
+
doute.
|
|
21
|
+
- Visuel party-mode cable sur la liste de taches native (une entree par
|
|
22
|
+
agent/etape, `TaskCreate` / `TaskUpdate` en direct) plus la table de dispatch
|
|
23
|
+
affichee en tete de la phase BUILD.
|
|
24
|
+
- Garde "les deux moteurs" (`codexLinked()`) dans `codex-autodelegate.js` : la
|
|
25
|
+
voie Codex ne s'arme que si l'option yanstaller est activee ET Codex est linke
|
|
26
|
+
(`~/.codex/auth.json` ou `CODEX_API_KEY`) ; option seule = pas de delegation.
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
- La delegation Codex sur voie armee passe de "conseil advisory" a "directive" :
|
|
30
|
+
quand la voie est armee (option + les deux moteurs), le rendu injecte demande
|
|
31
|
+
de deleguer le delegable via `codex-bridge` (repli Claude si Codex
|
|
32
|
+
indisponible), au lieu de laisser BYAN executer sur Claude par defaut.
|
|
33
|
+
- Doctrine synchronisee (`.claude/rules/agent-entry-gate.md`, `.claude/CLAUDE.md`)
|
|
34
|
+
a la chaine d'entree v2 ; la double validation est calibree (doute / nouvel
|
|
35
|
+
agent / destructif) au lieu d'un reflexe a chaque tache.
|
|
36
|
+
|
|
37
|
+
### Docs
|
|
38
|
+
- `docs/codex-auto-delegation.md` : garde "les deux moteurs", directive-quand-arme,
|
|
39
|
+
plafond honnete.
|
|
40
|
+
- `docs/per-platform-projection-opti.md` : chantier suivant planifie (coeur unique
|
|
41
|
+
+ deux projections optimisees par plateforme Claude/Codex, sans source rivale).
|
|
42
|
+
|
|
12
43
|
## [2.48.0] - 2026-07-16
|
|
13
44
|
|
|
14
45
|
### Added - The whole dispatch chain now runs automatically at the entry
|
package/install/package.json
CHANGED
|
@@ -17,19 +17,27 @@ Voir @.claude/rules/hermes-dispatcher.md pour les commandes Hermes.
|
|
|
17
17
|
|
|
18
18
|
## Porte d'entree — dispatch d'agent obligatoire (match-or-create)
|
|
19
19
|
|
|
20
|
-
La base de BYAN : toute tache non-conversationnelle passe d'abord par
|
|
21
|
-
d'
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
La base de BYAN : toute tache non-conversationnelle passe d'abord par la chaine
|
|
21
|
+
d'entree. A l'entree, BYAN enchaine AUTOMATIQUEMENT toute la chaine, sans que tu
|
|
22
|
+
la demandes — quatre moments :
|
|
23
|
+
|
|
24
|
+
1. **Comprendre.** Demande claire -> on avance directement, zero question. Doute
|
|
25
|
+
ou demande mal exprimee -> BYAN expose UN plan clair (quels agents, quels
|
|
26
|
+
modeles, quel effort) et tu tranches. Ce point de controle en amont ne se
|
|
27
|
+
declenche que sur un vrai doute.
|
|
28
|
+
2. **Dispatch (Hermes, automatique).** Le bon agent, le bon modele, le bon effort,
|
|
29
|
+
le bon moteur — Codex pour execution/shell/deploy/devops/navigateur, Claude
|
|
30
|
+
sinon (via `dispatch-router`). Aucun agent adapte -> interview + recherche web
|
|
31
|
+
(competences + bonnes pratiques du metier) -> creation de l'agent sur mesure.
|
|
32
|
+
3. **Execution en party-mode avec visuel live.** Tu vois ce qui se passe en
|
|
33
|
+
direct (liste de taches native + table de dispatch). Voie Codex armee (option
|
|
34
|
+
yanstaller + Codex linke) + tache delegable -> delegation reelle a Codex ;
|
|
35
|
+
sinon execution sur Claude.
|
|
36
|
+
4. **Gate en fin.** La validation utilisateur arrive a la fin, sur le livrable —
|
|
37
|
+
pas en amont.
|
|
38
|
+
|
|
39
|
+
L'humain reste requis seulement pour : creer un nouvel agent, confirmer une action
|
|
40
|
+
destructive, trancher le plan quand il y a doute. Detail + enforcement : voir
|
|
33
41
|
@.claude/rules/agent-entry-gate.md et @docs/intelligent-dispatch.md
|
|
34
42
|
|
|
35
43
|
## Architecture BYAN
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
const fs = require('fs');
|
|
22
22
|
const path = require('path');
|
|
23
|
+
const os = require('os');
|
|
23
24
|
const { readStdin, parseJson } = require('./lib/strict-runtime');
|
|
24
25
|
const { decideAutodelegation, renderNudge } = require('./lib/autodelegate-decision');
|
|
25
26
|
const { estimateClaudeUsage } = require('./lib/usage-estimator');
|
|
@@ -44,13 +45,29 @@ function toggledOff(projectRoot) {
|
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
|
|
48
|
+
// The "both engines present" gate. The lane arms only when the yanstaller option
|
|
49
|
+
// wrote enabled:true (checked via loadConfig) AND Codex is actually linked on this
|
|
50
|
+
// machine — a ChatGPT subscription via `codex login` (~/.codex/auth.json) or
|
|
51
|
+
// CODEX_API_KEY. Option on but no linked Codex = one engine only = no delegation
|
|
52
|
+
// (the user's rule: option AND both engines, else nothing). Mirrors codexAuthState
|
|
53
|
+
// in install/lib/codex-autodelegate-setup.js.
|
|
54
|
+
function codexLinked({ home = os.homedir() } = {}) {
|
|
55
|
+
if (process.env.CODEX_API_KEY) return true;
|
|
56
|
+
try {
|
|
57
|
+
return fs.existsSync(path.join(home, '.codex', 'auth.json'));
|
|
58
|
+
} catch {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
47
63
|
if (require.main === module) {
|
|
48
64
|
(async () => {
|
|
49
65
|
let additionalContext = '';
|
|
50
66
|
try {
|
|
51
67
|
const projectRoot = process.env.CLAUDE_PROJECT_DIR || process.cwd();
|
|
52
68
|
const config = loadConfig(projectRoot);
|
|
53
|
-
|
|
69
|
+
// Both engines must be present : option armed (enabled) AND Codex linked.
|
|
70
|
+
if (config.enabled === true && !toggledOff(projectRoot) && codexLinked()) {
|
|
54
71
|
const payload = parseJson(await readStdin());
|
|
55
72
|
const prompt = payload.prompt || payload.user_prompt || payload.userPrompt || '';
|
|
56
73
|
// Estimate usage only when a budget is configured; else pct stays null and
|
|
@@ -71,4 +88,4 @@ if (require.main === module) {
|
|
|
71
88
|
})();
|
|
72
89
|
}
|
|
73
90
|
|
|
74
|
-
module.exports = { loadConfig, toggledOff };
|
|
91
|
+
module.exports = { loadConfig, toggledOff, codexLinked };
|
|
@@ -123,22 +123,26 @@ function sanitizeForContext(value, max = 120) {
|
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
// Render a decision into the one-paragraph nudge injected into BYAN's context.
|
|
126
|
-
// Empty string when there is nothing to
|
|
127
|
-
// The
|
|
128
|
-
//
|
|
126
|
+
// Empty string when there is nothing to render (so the hook injects nothing).
|
|
127
|
+
// The hook injects this ONLY when the lane is armed (option on AND Codex linked),
|
|
128
|
+
// so the text is a DIRECTIVE, not advice: delegate the delegable part, fall back
|
|
129
|
+
// to Claude only if Codex is unavailable. The red line (delegable work only —
|
|
130
|
+
// judgment/soul/verify stay on Claude) is spelled out every time.
|
|
129
131
|
function renderNudge(decision) {
|
|
130
132
|
if (!decision || !decision.delegate) return '';
|
|
131
133
|
const gauge = decision.pct != null ? ` (estimated Claude 5h usage ~${decision.pct}%)` : '';
|
|
132
134
|
const invocation = sanitizeForContext(decision.invocation) || DEFAULT_INVOCATION;
|
|
133
135
|
const scope = decision.mode === 'all'
|
|
134
|
-
? '
|
|
136
|
+
? 'Delegate ALL delegable work this session to Codex'
|
|
135
137
|
: decision.mode === 'perf-routed'
|
|
136
|
-
? 'Codex is heuristically favored for this kind of task (not a measured benchmark) —
|
|
137
|
-
: 'This
|
|
138
|
+
? 'Codex is heuristically favored for this kind of task (not a measured benchmark) — delegate it'
|
|
139
|
+
: 'This is delegable coding work — delegate it to Codex';
|
|
138
140
|
return [
|
|
139
141
|
`[BYAN auto-delegate]${gauge}: ${scope} via \`${invocation}\` `
|
|
140
142
|
+ '(runs on the ChatGPT subscription, no API credit).',
|
|
141
|
-
`Red line: ${decision.redLine}.
|
|
143
|
+
`Red line: ${decision.redLine}. The lane is ARMED (option on AND Codex linked), so this is a `
|
|
144
|
+
+ 'DIRECTIVE, not a mere suggestion: delegate the delegable part unless you have a specific reason '
|
|
145
|
+
+ "not to, fall back to Claude only if Codex is unavailable, and verify Codex's output before commit.",
|
|
142
146
|
].join(' ');
|
|
143
147
|
}
|
|
144
148
|
|
|
@@ -47,35 +47,55 @@ declencher une interview a chaque fois. Agent existant qui colle = on route
|
|
|
47
47
|
direct. Besoin flou ou aucun agent adapte = la ou l'interview + creation se
|
|
48
48
|
declenchent. La ceremonie est proportionnee au manque, pas systematique.
|
|
49
49
|
|
|
50
|
-
## La chaine complete, automatique (
|
|
50
|
+
## La chaine complete, automatique (comprendre -> dispatch -> execution party-mode -> gate en fin)
|
|
51
51
|
|
|
52
52
|
Le dispatch d'agent n'est que la premiere marche. A l'entree, sur toute tache,
|
|
53
53
|
BYAN enchaine la chaine ENTIERE de lui-meme, sans que l'utilisateur ait a la
|
|
54
|
-
demander :
|
|
55
|
-
|
|
56
|
-
1. **
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
54
|
+
demander. Quatre moments :
|
|
55
|
+
|
|
56
|
+
1. **Comprendre la demande.** Demande claire -> on avance directement, sans
|
|
57
|
+
question. Doute ou demande mal exprimee -> BYAN expose UN plan clair (quels
|
|
58
|
+
agents, quels modeles, quel effort) et l'utilisateur tranche. Ce point de
|
|
59
|
+
controle en amont ne se declenche que sur un vrai doute — pas en reflexe a
|
|
60
|
+
chaque tache.
|
|
61
|
+
2. **Dispatch (Hermes, automatique).** Le bon agent (matcher
|
|
62
|
+
`_byan/mcp/byan-mcp-server/lib/agent-matcher.js`), le bon modele + effort
|
|
63
|
+
(`dispatch-router.js` / native-tiers) et le bon moteur : Codex pour execution /
|
|
64
|
+
shell / deploiement / devops / navigateur ; Claude pour architecture / refactor
|
|
65
|
+
/ qualite / planif ; la verification reste sur Claude ; Fable n'est pas emis.
|
|
66
|
+
Decision automatique, pas de validation utilisateur. Fit -> cet agent ;
|
|
67
|
+
no-fit -> interview + recherche web + creation (seul point ou l'humain reste
|
|
68
|
+
requis en amont).
|
|
69
|
+
3. **Execution en party-mode avec un visuel live.** L'utilisateur VOIT ce qui se
|
|
70
|
+
passe, en direct : la liste de taches native (une entree par agent/etape,
|
|
71
|
+
mise a jour en temps reel) plus la table de dispatch en tete. Codex-lane : quand
|
|
72
|
+
la voie est ARMEE (option yanstaller + Codex linke) et la tache delegable,
|
|
73
|
+
deleguer REELLEMENT via le pont (`lib/codex-bridge.js` : `codex exec` -> diff
|
|
74
|
+
unifie -> Claude applique ; repli sur Claude si Codex indisponible) — le conseil
|
|
75
|
+
injecte est alors une directive, pas une simple suggestion. Non armee : pas de
|
|
76
|
+
delegation, on execute sur Claude. Claude-lane : executer sur Claude au modele
|
|
77
|
+
choisi.
|
|
78
|
+
4. **Gate utilisateur en fin.** Le point de controle utilisateur arrive a la fin,
|
|
79
|
+
une fois la feature/tache faite et s'il y a un livrable a valider — pas en
|
|
80
|
+
amont. Dans un FD multi-feature complet, les gates par phase s'appliquent en
|
|
81
|
+
plus (c'est la gouvernance plus lourde du FD ; le chemin direct ci-dessus est
|
|
82
|
+
le cas courant).
|
|
68
83
|
|
|
69
84
|
Ce qui reste a l'humain : (a) creer un nouvel agent quand aucun ne colle, (b)
|
|
70
|
-
confirmer une action destructive
|
|
71
|
-
|
|
85
|
+
confirmer une action destructive, (c) trancher le plan en amont quand il y a
|
|
86
|
+
doute. Le reste — comprehension, match agent, routage moteur, execution — part
|
|
87
|
+
tout seul. Detail du routage moteur : `docs/intelligent-dispatch.md`.
|
|
72
88
|
|
|
73
|
-
## La double validation
|
|
89
|
+
## La double validation (calibree : sur doute, nouvel agent, destructif)
|
|
74
90
|
|
|
75
91
|
Le matcher (F1, `_byan/mcp/byan-mcp-server/lib/agent-matcher.js`) est un
|
|
76
92
|
pre-tri deterministe : il classe les candidats du roster et rend un verdict
|
|
77
|
-
{fit | no-fit}. Il PROPOSE, il ne tranche pas seul.
|
|
78
|
-
|
|
93
|
+
{fit | no-fit}. Il PROPOSE, il ne tranche pas seul. Mais la confirmation humaine
|
|
94
|
+
n'est PAS un reflexe a chaque tache : sur une demande claire avec un agent adapte,
|
|
95
|
+
BYAN route et execute, et le gate est en fin. La confirmation humaine se declenche
|
|
96
|
+
sur les trois cas qui la meritent : un vrai doute (le plan en amont), la creation
|
|
97
|
+
d'un nouvel agent, une action destructive. IA propose, humain confirme — la ou ca
|
|
98
|
+
compte, pas partout.
|
|
79
99
|
|
|
80
100
|
## La creation d'agent enrichie (chemin no-fit)
|
|
81
101
|
|
|
@@ -7,31 +7,54 @@ description: BYAN — Builder of YAN. Core meta-agent that owns the Feature Deve
|
|
|
7
7
|
|
|
8
8
|
You are BYAN when this skill is active. You own the eight-phase Feature Development workflow and you enforce it mechanically. Every new feature the user asks for goes through all phases in order. No skipping. No implicit transitions. The cycle includes a REFACTOR loop back to BUILD when VALIDATE fails.
|
|
9
9
|
|
|
10
|
-
## 0. Entry
|
|
11
|
-
|
|
12
|
-
On
|
|
13
|
-
the user should
|
|
14
|
-
|
|
15
|
-
1. **
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
2. **
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
10
|
+
## 0. Entry chain — comprehend, dispatch, execute in party-mode, gate at the end
|
|
11
|
+
|
|
12
|
+
On every non-conversational task, run this chain yourself, of your own accord —
|
|
13
|
+
the user should not have to ask for it. Four moments:
|
|
14
|
+
|
|
15
|
+
1. **Comprehend the request.** Clear -> advance directly, no question. Doubt or a
|
|
16
|
+
badly-expressed request -> expose ONE clear plan (which agents, which models,
|
|
17
|
+
which effort) and let the user decide. This upstream plan-gate fires ONLY on
|
|
18
|
+
genuine doubt — it is not a reflex on every task. When the request is clear,
|
|
19
|
+
skip it and route.
|
|
20
|
+
2. **Dispatch (Hermes, automatic).** Pick the right agent
|
|
21
|
+
(`_byan/mcp/byan-mcp-server/lib/agent-matcher.js`), the right model + effort
|
|
22
|
+
(`dispatch-router.js` / native-tiers), and the right runtime — Codex for
|
|
23
|
+
execution / shell / deploy / devops / browser ; Claude for architecture /
|
|
24
|
+
refactor / quality / planning ; verification stays on Claude ; Fable is not
|
|
25
|
+
emitted. No user ask. A suited agent -> use it. NO suited agent -> interview to
|
|
26
|
+
frame the need, web-research the trade's competencies + best practices, create
|
|
27
|
+
the tailored agent (the one place the human is required upstream).
|
|
28
|
+
3. **Execute in party-mode with a live visual.** The user SEES what happens, live:
|
|
29
|
+
the native task list (one entry per agent/step, updated in real time via
|
|
30
|
+
`TaskCreate` / `TaskUpdate`) plus the dispatch table shown at the top of BUILD.
|
|
31
|
+
- **Codex-lane** — when the lane is ARMED (yanstaller option on AND Codex
|
|
32
|
+
linked, i.e. `_byan/_config/autodelegate.json` present with `enabled:true`
|
|
33
|
+
AND `~/.codex/auth.json` or `CODEX_API_KEY`) and the task is delegable,
|
|
34
|
+
ACTUALLY delegate via `codex-bridge.js` (`codex exec` -> unified diff -> YOU
|
|
35
|
+
apply it). Fall back to Claude if Codex is unavailable. When armed, the
|
|
36
|
+
injected `[BYAN auto-delegate]` note is a DIRECTIVE, not a mere suggestion:
|
|
37
|
+
you delegate the delegable work rather than doing it on Claude by default.
|
|
38
|
+
When NOT armed (option off or Codex not linked), there is no delegation —
|
|
39
|
+
you run it on Claude.
|
|
40
|
+
- **Claude-lane** — run it on Claude at the chosen model.
|
|
41
|
+
4. **User gate at the END.** The user-validation gate lands at the end, once the
|
|
42
|
+
feature/task is done and there is a deliverable to review — not upstream. (In a
|
|
43
|
+
full multi-feature FD, the per-phase gates below still apply — that is the
|
|
44
|
+
heavier governance the FD opts into; the direct path above is the common case.)
|
|
45
|
+
|
|
46
|
+
Proportionate: a trivial task with an existing agent routes directly, no ceremony;
|
|
47
|
+
a genuine multi-feature build escalates into the full eight-phase FD. The human
|
|
48
|
+
stays required only for (a) creating a NEW agent and (b) confirming a destructive
|
|
49
|
+
action. Everything else — comprehension routing, agent match, runtime routing,
|
|
50
|
+
execution — is automatic. Do not do a task yourself without running this chain.
|
|
51
|
+
|
|
52
|
+
**Honest ceiling.** Claude Code has no control point before a response is shown,
|
|
53
|
+
so this chain is model-driven doctrine, not a hard mechanism: the delegation and
|
|
54
|
+
the visual are things you DO because this section says so, backed by the reactive
|
|
55
|
+
net (`agent-gate-check.js`) at turn end — not a guarantee enforced before display.
|
|
56
|
+
Full doctrine + runtime routing table: see @.claude/rules/agent-entry-gate.md and
|
|
57
|
+
@docs/intelligent-dispatch.md
|
|
35
58
|
|
|
36
59
|
## 1. Activation triggers
|
|
37
60
|
|
|
@@ -122,7 +145,10 @@ Never call `byan_update_apply` without explicit user consent. That tool returns
|
|
|
122
145
|
- TDD first : write/update tests before implementation.
|
|
123
146
|
- Atomic commits : `type: description`, no emoji, one feature per commit.
|
|
124
147
|
- Parallel BUILD via `party-mode-native` only if roles are independent and write to non-overlapping paths.
|
|
125
|
-
- **
|
|
148
|
+
- **Party-mode live visual** (the user must SEE what happens) :
|
|
149
|
+
1. At BUILD entry, print the dispatch table (feature x specialist x model x strategy) so the plan is on screen before any work starts.
|
|
150
|
+
2. Create ONE native task per feature/agent with `TaskCreate` (the checklist Claude Code renders live). Set it `in_progress` (`TaskUpdate`) with the acting agent as `owner` the moment that agent starts, and `completed` the moment it finishes. One entry per agent/step, updated in real time — that is the visual.
|
|
151
|
+
3. This native list is the primary visual ; the `tool-transparency` hook is the audit trail underneath it, writing per-tool entries to `_byan-output/tool-log.jsonl`. Every sub-task you spawn must be visible in both.
|
|
126
152
|
- **Exit gate** : user sees the diff and says "ok build".
|
|
127
153
|
|
|
128
154
|
### Phase 6 — REVIEW (qualitative pre-flight + tiered adversarial second pair of eyes)
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"name": "byan-byan",
|
|
95
95
|
"module": "core",
|
|
96
96
|
"tier": "connector-bound",
|
|
97
|
-
"sourceHash": "
|
|
97
|
+
"sourceHash": "84fa718d638f1ddb37796c9b80c702fca48350decb40979bd1adea1452224abc"
|
|
98
98
|
},
|
|
99
99
|
"byan-byan-v2": {
|
|
100
100
|
"name": "byan-byan-v2",
|
|
Binary file
|
|
@@ -12,9 +12,24 @@ work crosses the line.
|
|
|
12
12
|
Every turn, a `UserPromptSubmit` hook estimates how much of the Claude 5h window
|
|
13
13
|
you have burned and looks at the task you just asked for. If the task is
|
|
14
14
|
delegable (code / mechanical) — or if you are over the pressure threshold — BYAN
|
|
15
|
-
injects a one-line
|
|
16
|
-
`codex:codex-rescue --model gpt-5.4`. You still
|
|
17
|
-
|
|
15
|
+
injects a one-line note directing you to hand it to Codex via
|
|
16
|
+
`codex:codex-rescue --model gpt-5.4`. You still verify Codex's output before commit.
|
|
17
|
+
|
|
18
|
+
**Both engines must be present.** The lane only arms — and the note only fires —
|
|
19
|
+
when TWO conditions hold together: the yanstaller option wrote
|
|
20
|
+
`_byan/_config/autodelegate.json` with `enabled:true`, AND Codex is actually
|
|
21
|
+
linked on this machine (`~/.codex/auth.json` from `codex login`, or
|
|
22
|
+
`CODEX_API_KEY`). Option on but no linked Codex = one engine only = no delegation.
|
|
23
|
+
This is the runtime `codexLinked()` gate in `codex-autodelegate.js`, the mirror of
|
|
24
|
+
the installer's arm-time `codexAuthState` check.
|
|
25
|
+
|
|
26
|
+
**Armed = directive, not advice.** Because the note only appears when the lane is
|
|
27
|
+
armed (both engines present), it reads as a directive: delegate the delegable
|
|
28
|
+
part, fall back to Claude only if Codex is unavailable. When the lane is not
|
|
29
|
+
armed, no note is injected and everything runs on Claude — there is nothing to
|
|
30
|
+
decide. Honest ceiling: Claude Code has no control point before a response is
|
|
31
|
+
shown, so this stays model-driven doctrine (BYAN delegates because the skill's
|
|
32
|
+
entry chain and this note say so), not a mechanism enforced before display.
|
|
18
33
|
|
|
19
34
|
Three triggers, in priority order:
|
|
20
35
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-byan-agent",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.49.0",
|
|
4
4
|
"description": "BYAN v2.8 - Intelligent AI agent creator with ELO trust system + scientific fact-check + Hermes universal dispatcher + native Claude Code integration (hooks, skills, MCP server). Multi-platform (Claude Code, Codex). Merise Agile + TDD + 71 Mantras. ~54% LLM cost savings.",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"bin": {
|