Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/CodySwannGT/lisa --skill lisa-setup-local-env명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
This skill should be used for any non-trivial request — features, bugs, stories, epics, spikes, or multi-step tasks. It accepts a ticket URL (Jira, Linear, GitHub), a file path containing a spec, or a plain-text prompt. It assembles an agent team, breaks the work into structured tasks, and manages the full lifecycle from research through implementation, code review, deploy, and empirical verification.
any non-trivial request —…
This skill should be used for any non-trivial request — features, bugs, stories, epics, spikes, or multi-step tasks. It accepts a ticket URL (Jira, Linear, GitHub), a file path containing a spec, or a plain-text prompt. It assembles an agent team, breaks the work into structured tasks, and manages the full lifecycle from research through implementation, code review, deploy, and empirical verification.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | lisa-setup-local-env |
| description | Bring a developer's machine in… |
| allowed-tools | ["Bash","Read","Skill"] |
Make this machine match what the project says it needs.
remoteEnv.tools was always the manifest for every surface, and the executor always
understood local. What did not exist was a way to ask for it. The only path ran a file named
setup-remote-env.mjs, out of a directory named lisa-remote-env, via a skill named
lisa-setup-remote-env — and it only existed at all once someone had provisioned a remote
environment, because that is what writes it into the repository.
So the machine most likely to be missing a tool was the one with no way to ask about it.
This skill is that surface. It adds no manifest, no pins, and no installer: it imports the ones the remote flow owns. A second installer would be a second thing to keep honest, and the one people run least is the one that rots.
node scripts/local-env.mjs # report what diverges
node scripts/local-env.mjs --install-tools # install what is missing
node scripts/local-env.mjs --json # machine-readable plan
Exit status is non-zero when a tool cannot be resolved, so this is usable as a gate.
Two things, and both are because a person is here.
Consent. A container is disposable and provisions itself silently — that is the whole
point of it. A laptop belongs to someone, and putting pinned binaries into their
~/.local/bin uninvited is not ours to decide. Nothing installs until --install-tools.
Reporting happens either way, because knowing the machine diverges from what the project
declares is most of the value.
The pin is a floor, not an equality. A container should hold exactly the pinned version;
it exists to be reproducible. A developer's machine is shared with every other project they
work on, so installing a pinned binary ahead of a newer one already on PATH is a
downgrade this project imposed on all of them. A newer tool is reported as newer and left
alone. Older, or absent, is an install.
An install entry either serves every platform — true of npm-global and nothing else — or
declares a platforms map keyed <platform>-<arch>, each block carrying its own install
method, url, and sha256:
{
"name": "gh",
"version": "2.83.0",
"platforms": {
"linux-x64": { "install": "release-tar", "url": "...linux_amd64.tar.gz", "sha256": "...", "binary": "gh_2.83.0_linux_amd64/bin/gh" },
"darwin-arm64": { "install": "release-zip", "url": "...macOS_arm64.zip", "sha256": "...", "binary": "gh_2.83.0_macOS_arm64/bin/gh" }
}
}
The method lives inside each block because it varies: gh publishes a .tar.gz for Linux
and a .zip for macOS, so a single method would have forced one platform onto an archive kind
its vendor does not ship.
When a tool has no block for the running platform, this skill says so and stops there. It will not guess a download URL — a guessed artifact is one the checksum cannot vouch for, and the checksum is the only thing standing between a pinned entry and whatever a URL serves today. Add the block, or install that one tool however the platform normally would.
Run /lisa:detect-tooling when the report looks thin. The manifest is the only thing that puts
a binary on PATH, and nothing populates it automatically — so a project ships npm scripts
invoking maestro, wires an MCP server whose CLI it also shells out to, and configures
Playwright thresholds, while remoteEnv.tools stays empty and each of those fails at the
moment of use instead of at setup.
The detector proposes and a human decides. It writes nothing, so a tool still only ever reaches a machine from a reviewed, pinned, checksummed entry.
assertPinned gate the remote
flow uses, and the same in-process checksum verification, which refuses before unpacking./lisa:detect-tooling; deciding
belongs to a human reviewing a diff.