skills: reconcile integrated guards, name the emulator_no_active recovery

This commit is contained in:
Jinwoo-H
2026-09-04 17:36:25 -04:00
parent 3753fac07e
commit 3ebda3f0b7
4 changed files with 10 additions and 24 deletions
@@ -284,26 +284,14 @@ describe('bundled skill guide generator', () => {
}
})
// Why: a guide that restates the resolver must restate all of it — a partial copy is what
// sends an agent to bare `orca` and the GNOME screen reader on Linux.
it('keeps the executable-resolution ladder whole in the guides that restate it', async () => {
for (const name of ['orca-cli', 'computer-use']) {
// Why: `skills get` already ran on a resolved executable, so guide bodies name that
// executable instead of carrying another copy of the ladder the stubs own.
it('points every guide at the executable that ran skills get', async () => {
for (const name of CANONICAL_GUIDE_NAMES) {
const source = await readFile(path.join(projectDir, 'skill-guides', `${name}.md`), 'utf8')
expect(source, name).toContain('ORCA_CLI_COMMAND')
expect(source, name).toContain('orca-dev')
expect(source, name).toContain('orca-ide')
}
})
// Why: `skills get` already ran on a resolved executable, so the emulator guides name that
// executable instead of carrying a fourth copy of the ladder the stubs own.
it('points the emulator guides at the stub-resolved executable', async () => {
for (const name of ['orca-emulator', 'orca-emulator-android']) {
const source = await readFile(path.join(projectDir, 'skill-guides', `${name}.md`), 'utf8')
expect(source, name).toContain(
'`ORCA` is a placeholder for the executable you used to run `skills get`'
expect(source.replace(/\s+/gu, ' '), name).toContain(
'the executable you used to run `skills get`'
)
expect(source, name).not.toContain('ORCA_CLI_COMMAND')
}
@@ -18,10 +18,7 @@ const MAX_GUIDE_LINES = 300
* ratchet ceiling, not a target: shrink them freely and delete the entry once the guide fits.
* A name may leave this set. A name may never join it — split the guide into `references/` instead.
*/
const OVER_BUDGET = new Map([
['orca-cli', 424],
['orca-per-workspace-env', 794]
])
const OVER_BUDGET = new Map([['orca-per-workspace-env', 390]])
/** Matches `wc -l`: a trailing newline ends the last line rather than starting a new one. */
function lineCount(contents) {
+2 -1
View File
@@ -77,7 +77,8 @@ device.
`attach` makes one device active per worktree, and opening the emulator pane does the same,
so unqualified commands target it. Pass a selector only to override that or to reach a
second device.
second device. An unqualified command with no active session fails with
`emulator_no_active`; run `attach` or open the pane, then retry.
- `--device "iPhone 16 Pro"` or `--device <udid>`, from `list` or `devices`.
- `--emulator <id>` is an alternative spelling of `--device`: the bridge resolves both
File diff suppressed because one or more lines are too long