devlyn-cli 2.5.0 → 2.5.1
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.
|
@@ -31,7 +31,7 @@ Notes:
|
|
|
31
31
|
- `-s read-only` / `--full-auto` — sandbox policy. `--full-auto` = `-s workspace-write` with auto-approval of sandboxed commands.
|
|
32
32
|
- `-c model_reasoning_effort=xhigh` — config override for reasoning depth. Required for deep critique; skills may choose `high` or `medium` when thoroughness doesn't warrant xhigh.
|
|
33
33
|
- **Omit `-m <model>`** — Codex CLI uses its configured flagship (currently `gpt-5.5`, automatically whatever ships next). This is the zero-touch mechanism. Only name `-m` when a role explicitly needs a different model (e.g., `gpt-5.3-codex` for SWE-bench-heavy coding tasks, `gpt-5.3-codex-spark` for speed).
|
|
34
|
-
- `CODEX_MONITORED_ISOLATED=1` — required for bounded read-only critique/probe/judge calls. The wrapper adds `--ignore-user-config --ignore-rules --ephemeral --disable codex_hooks --disable hooks` so user config, AGENTS.md,
|
|
34
|
+
- `CODEX_MONITORED_ISOLATED=1` — required for bounded read-only critique/probe/judge calls. The wrapper adds `--ignore-user-config --ignore-rules --ephemeral --disable codex_hooks --disable hooks` so user config, AGENTS.md, hooks, and project rules cannot add hidden context, tool calls, or transcript side effects. Do not set it for workspace-write implementation phases.
|
|
35
35
|
- Raw `codex exec ...` invocations are **forbidden** in skill prompts. The benchmark variant arm runs a PATH shim (`scripts/codex-shim/codex`) that transparently re-routes any raw `codex exec` to the wrapper as a safety net, but skills should always emit the wrapper form directly so the orchestrator's first-attempt has the right shape. Two prior iterations (iter-0006 universal foreground ban, iter-0008 prompt-level kill-shape contract) failed because the orchestrator picked starvation-prone shapes (`codex exec ... 2>&1 | tail -200`) from its own pattern prior — the wrapper plus the shim is the runtime binding layer those iters lacked. See `autoresearch/iterations/0009-wrapper-and-hook.md`.
|
|
36
36
|
|
|
37
37
|
## Availability check
|
|
@@ -160,7 +160,7 @@ Invocation contract when OTHER engine is Codex:
|
|
|
160
160
|
- Invoke Codex only through the monitored wrapper path in `CODEX_MONITORED_PATH`,
|
|
161
161
|
or `.claude/skills/_shared/codex-monitored.sh` when the env var is absent:
|
|
162
162
|
`CODEX_MONITORED_ISOLATED=1 bash "$CODEX_MONITORED_PATH" -C "$PWD" --full-auto -c model_reasoning_effort=high "<probe prompt>"`.
|
|
163
|
-
Isolation keeps user config, AGENTS.md,
|
|
163
|
+
Isolation keeps user config, AGENTS.md, hooks, and project rules
|
|
164
164
|
from adding hidden context, tool calls, or transcript side effects.
|
|
165
165
|
- Do not run `codex`, `codex exec`, `/Users/.../codex`, or a plugin-provided
|
|
166
166
|
Codex binary directly. A raw Codex child can outlive the phase and makes the
|
|
@@ -262,7 +262,7 @@ failed availability check evidence, and print setup guidance:
|
|
|
262
262
|
- Claude: install/configure Claude Code, run `claude --version` when available,
|
|
263
263
|
confirm the host can spawn Claude agents, then rerun.
|
|
264
264
|
|
|
265
|
-
Findings written to `.devlyn/verify.findings.jsonl`. **VERIFY agents have no code-mutation tools.** Codex pair-JUDGE is read-only: invoke `codex-monitored.sh` with `CODEX_MONITORED_ISOLATED=1` and `-c model_reasoning_effort=medium`, no `tail`/`head`/`grep` pipes, direct stdout/stderr capture, JSONL findings on stdout, and orchestrator-written `.devlyn/verify.pair.findings.jsonl`. Isolation blocks user config, AGENTS.md,
|
|
265
|
+
Findings written to `.devlyn/verify.findings.jsonl`. **VERIFY agents have no code-mutation tools.** Codex pair-JUDGE is read-only: invoke `codex-monitored.sh` with `CODEX_MONITORED_ISOLATED=1` and `-c model_reasoning_effort=medium`, no `tail`/`head`/`grep` pipes, direct stdout/stderr capture, JSONL findings on stdout, and orchestrator-written `.devlyn/verify.pair.findings.jsonl`. Isolation blocks user config, AGENTS.md, hooks, and project rules from hidden context/tool/transcript side effects. If stdout is captured as `.devlyn/codex-judge.stdout`, run `python3 .claude/skills/_shared/collect-codex-findings.py` before merge; raw stdout is diagnostic only. If stdout contains findings or a non-PASS summary while `.devlyn/verify.pair.findings.jsonl` is empty, `verify-merge-findings.py` blocks VERIFY for `verify.pair.emission-contract`. Do not ask Codex to `apply_patch` or edit `.devlyn`. After primary and pair findings are written, run `python3 .claude/skills/_shared/verify-merge-findings.py --write-state`. Branch only on the merged `state.phases.verify.verdict`; a HIGH/CRITICAL finding from either judge must mechanically become `NEEDS_WORK`. Never write `.devlyn/verify-merged.findings.jsonl` or `.devlyn/verify-merge.summary.json` by hand; `verify-merge-findings.py` is their only writer. State write: `phases.verify.{started_at, verdict, completed_at, duration_ms, sub_verdicts: {mechanical, judge, pair_judge?}, artifacts}`.
|
|
266
266
|
|
|
267
267
|
Branch:
|
|
268
268
|
- `PASS` → PHASE 6.
|
|
@@ -216,7 +216,7 @@ When eligible and the orchestrator spawns a second VERIFY agent with the OTHER e
|
|
|
216
216
|
Codex pair-JUDGE is read-only. Invoke `codex-monitored.sh` directly with
|
|
217
217
|
`CODEX_MONITORED_ISOLATED=1` and `-c model_reasoning_effort=medium`; this is a
|
|
218
218
|
bounded two-probe review, not implementation. Isolation blocks user config,
|
|
219
|
-
AGENTS.md,
|
|
219
|
+
AGENTS.md, hooks, and project rules from hidden context/tool
|
|
220
220
|
side effects. Do not pipe it to `tail`, `head`, `grep`, `sed`, or `awk`.
|
|
221
221
|
Capture stdout/stderr directly. The Codex judge must return JSONL findings on
|
|
222
222
|
stdout; the orchestrator writes `.devlyn/verify.pair.findings.jsonl` and merges
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devlyn-cli",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"description": "AI development toolkit for Claude Code — ideate, resolve, and ship with context engineering and agent orchestration",
|
|
5
5
|
"homepage": "https://github.com/fysoul17/devlyn-cli#readme",
|
|
6
6
|
"bin": {
|
package/scripts/lint-skills.sh
CHANGED
|
@@ -176,18 +176,6 @@ else
|
|
|
176
176
|
while IFS= read -r f; do bad "$f"; done <<< "$offenders"
|
|
177
177
|
fi
|
|
178
178
|
|
|
179
|
-
# ---------------------------------------------------------------------------
|
|
180
|
-
# 2a. Packaged root instruction files must not contain pyx-memory secrets.
|
|
181
|
-
# ---------------------------------------------------------------------------
|
|
182
|
-
section "Check 2a: No pyx-memory secrets in packaged root instructions"
|
|
183
|
-
offenders=$(grep -RInE 'memory\.api\.pyxmate\.com|Authorization: Bearer pyx_[A-Za-z0-9]{12,}|X-API-Key: pyx_[A-Za-z0-9]{12,}|pyx_[A-Za-z0-9]{16,}' \
|
|
184
|
-
AGENTS.md CLAUDE.md 2>/dev/null || true)
|
|
185
|
-
if [ -z "$offenders" ]; then
|
|
186
|
-
ok "AGENTS.md and CLAUDE.md contain no pyx-memory secret material"
|
|
187
|
-
else
|
|
188
|
-
while IFS= read -r f; do bad "$f"; done <<< "$offenders"
|
|
189
|
-
fi
|
|
190
|
-
|
|
191
179
|
# ---------------------------------------------------------------------------
|
|
192
180
|
# 3. No stale model strings (gpt-5.0..5.4 hardcoded outside config).
|
|
193
181
|
# ---------------------------------------------------------------------------
|
|
@@ -1458,9 +1446,9 @@ fi
|
|
|
1458
1446
|
# ---------------------------------------------------------------------------
|
|
1459
1447
|
# 10a. Bounded Codex probe/judge calls must run isolated.
|
|
1460
1448
|
# Pair/risk-probe paths are measured read-only judges, not implementation
|
|
1461
|
-
# phases. They must not inherit user config, AGENTS.md, hooks,
|
|
1462
|
-
#
|
|
1463
|
-
#
|
|
1449
|
+
# phases. They must not inherit user config, AGENTS.md, hooks, or other
|
|
1450
|
+
# local rules that can add hidden context or transcript side effects.
|
|
1451
|
+
# The wrapper owns the flag expansion; skill docs own requiring
|
|
1464
1452
|
# CODEX_MONITORED_ISOLATED=1 for probe-derive and pair-JUDGE.
|
|
1465
1453
|
# ---------------------------------------------------------------------------
|
|
1466
1454
|
section "Check 10a: Bounded Codex calls use isolated wrapper mode"
|