- Separate inspection, editing and automation.
- Create conservative profiles for each task.
- Prevent an agent from doing more than requested.
dsh entry modes
The CLI README describes `dsh` as a launcher for profiles. A profile is an ordered stack of plugin-bundle patch layers under your own overrides.
The key commands are web, headless and plugin. Web opens the interface; headless runs one persisted task and exits; plugin forwards arguments to pnpm in the profile directory.
dsh web # alias for --profile web dsh --profile headless "Summarize this repo in 5 bullets" dsh plugin --profile my-profile add plugin-package dsh --help
Profile before impulse
Specific profile names may change with the product, but the pattern is stable: one for inspection, one for controlled changes and one for experimentation. Do not use a full shell profile to summarize a folder.
- Read-only: search and files, no writing.
- Bounded change: workspace edits plus explicit tests.
- Automation: only after repeatable proof and approvals for external actions.
Launcher arguments and profile arguments
The launcher parses its own flags first and passes the rest to the booted profile. Order matters: `--profile` belongs to the launcher; `--port` or `--resume` may belong to the profile app.
dsh --profile web --port 8080 # --port belongs to the Web UI dsh --profile headless "run the tests" dsh --profile web --help # web app help dsh --help # launcher help
Prompts that set boundaries
Prompt constraints do not replace permissions, but they reduce ambiguity and make the intended boundary auditable.
Analyze the issue and propose a five-step plan. Do not write files or run commands until I approve the plan. State risks, affected files and verification steps.
Si has guardado la evidencia de esta lección, continúa con «Workspaces, permissions and safety». Si no, repite la comprobación antes de avanzar.