Use the bundled deterministic CLI. Resolve this skill's installed directory,
then resolve the plugin root as ../... Invoke the CLI by absolute path:
If the script is missing, stop and report an incomplete plugin installation. Do
not download, install, or substitute another executable.
-
Resolve the exact workspace root and probe the installed Codex runtime:
node <plugin-root>/scripts/codsemble.mjs capabilities --workspace <absolute-workspace>
The probe is read-only. Copy its bounded model ids and supported reasoning
efforts into modelCapabilities, use only those ids in verifiedModels,
and record only tools actually available to the current session in
availableTools.
If it cannot confirm native multi-agent support, keep models inherited and
use manual or unchanged config mode. A requested sandbox never grants
authority beyond the parent session.
-
Run the workspace audit:
node <plugin-root>/scripts/codsemble.mjs audit --workspace <absolute-workspace>
Inspect the JSON. Surface truncation, exclusions, dirty-worktree state, and
existing Codex configuration. Do not write audit output inside the workspace.
-
Ask only for facts the audit cannot establish. Collect:
- goals and project stage;
- desired number of installed roles;
- maximum simultaneous spawned workers, asked as a separate question;
- quality, speed, or cost preference;
- required and excluded roles;
- prohibited actions;
- concrete model ids only if verified in this Codex environment;
- configuration mode:
preview, apply-project, manual, or unchanged.
Warn before concurrency above 16 and require explicit high-concurrency
acceptance. Explain that a role can be installed without running.
-
Write the typed answers JSON to a temporary path outside the workspace.
Never place credentials, repository source, or arbitrary repository prose in
it. Run:
node <plugin-root>/scripts/codsemble.mjs recommend \
--workspace <absolute-workspace> \
--answers <absolute-temporary-answers-json>
-
Present Focused, Recommended, and Extended proposals with their Project
Capability Map, Work Package coverage, evidence references, gaps, sandboxes,
and worker ceilings. Recommend the smallest complete option. Use
catalog --search <term> only when the user wants to inspect or require a
reusable primitive; never dump the whole library into onboarding.
-
After the user selects and customizes one proposal, run:
node <plugin-root>/scripts/codsemble.mjs plan \
--workspace <absolute-workspace> \
--answers <absolute-temporary-answers-json> \
--proposal <focused|recommended|extended>
Save the JSON plan to a temporary path outside the workspace. Show every
proposed path, action, managed boundary, concurrency change, warning, and
exact diff. State that project config is a persistent default loaded only
when Codex trusts the project and may require a fresh session.
-
Run the read-only approval description:
node <plugin-root>/scripts/codsemble.mjs approval \
--workspace <absolute-workspace> \
--plan <absolute-temporary-plan-json>
For preview, require state: preview-only, confirmationId: null, and
voiceChallenge: null; do not display or speak an approval token, do not ask
for confirmation, and stop after stating that the plan
is read-only and terminal. If the user later wants changes, re-probe and
regenerate a new non-preview plan; never promote the old preview. For
manual, explain that apply will
write the confirmed team artifacts while leaving .codex/config.toml
untouched, and show the concurrency snippet for the user to install
separately. For unchanged, explain that apply will write the confirmed
team artifacts without changing concurrency configuration.
-
For any non-preview mode, ask the user to confirm the displayed exact plan.
In voice interactions, speak the complete voiceChallenge only after the
diff and risk summary, then require a later user-originated turn to repeat it
exactly. Reject yes, continue, go ahead, approved, do it, partial
phrases, paraphrases, reordered words, and approximate matches. Do not ask a
yes/no repair question after a mismatch. Say exactly: That did not match. Nothing changed. Repeat the exact phrase shown, or say cancel. If the user
says cancel, discard the conversational approval step and do not invoke
apply. Use voice confirmation only when the calling voice layer identifies
a later user-originated transcript after assistant speech ends; otherwise
require the keyboard confirmation-ID path. Then run:
node <plugin-root>/scripts/codsemble.mjs apply \
--workspace <absolute-workspace> \
--plan <absolute-temporary-plan-json> \
--confirm-voice "<complete-current-voice-challenge>"
For keyboard automation, --confirm <exact-confirmation-id> remains the
byte-exact compatibility path. Use exactly one confirmation method.
Do not alter the plan after confirmation. If referenced evidence, a required
runtime capability, or any preimage changed, stop and
regenerate instead of retrying or overwriting.
-
Run doctor --workspace <absolute-workspace>. Report structural results
separately from checks that require a fresh Codex session. Remove temporary
answer and plan files when they are no longer needed.