mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-21 20:30:47 +02:00
Detect host-native browser tools before offering the isolated local Chromium fallback, add a common readiness fixture, harden managed browser startup, and verify standards installs expose one canonical QA skill.
77 lines
3.5 KiB
Markdown
77 lines
3.5 KiB
Markdown
<!-- GENERATED by scripts/gstack2/generate-skill-tree.ts; do not edit. -->
|
|
<!-- GSTACK2_PROVENANCE source=guard/SKILL.md.tmpl base=bb57306d98c97011b0919c6132705a15b1579781 blob=3d34ee0c181ec7b263bf6092ba8f384619c5efb6 baseline_render_sha256=fb2609e8e305dfceb554442c4c5a8717b9f77efd8bf9c7166b9ec6335b06f481 ported_render_sha256=36072a06a2a2ab6c1beec2a888417fb96eb1a50f284cb26ee3796b7c69857be8 disposition=BUG_FIX -->
|
|
<!-- GSTACK2_ROUTING replacement=$debug --mode Diagnose-only --module guard visibility=internal depth=standard mutation=safety-policy web=none -->
|
|
|
|
<!-- GSTACK2_LEGACY_BODY_START source=guard -->
|
|
## Host-neutral runtime bindings
|
|
|
|
These assignments select stable paths only; they do not install anything or grant consent:
|
|
|
|
```bash
|
|
GSTACK_HOME="${GSTACK_HOME:-$HOME/.gstack}"
|
|
GSTACK_ROOT="$GSTACK_HOME"
|
|
GSTACK_STATE_ROOT="$GSTACK_HOME"
|
|
GSTACK_BIN="$GSTACK_HOME/bin"
|
|
BUN_CMD="$GSTACK_BIN/bun"
|
|
B="$GSTACK_BIN/browse"
|
|
D="$GSTACK_BIN/gstack-design"
|
|
P="$GSTACK_BIN/make-pdf"
|
|
```
|
|
# $debug --mode Diagnose-only --module guard — Full Safety Mode
|
|
|
|
Activates both destructive command warnings and directory-scoped edit restrictions.
|
|
This is the combination of `$debug --mode Diagnose-only --module careful` + `$debug --mode Diagnose-only --module freeze` in a single command.
|
|
|
|
**Dependency note:** This skill references hook scripts from the sibling `$debug --mode Diagnose-only --module careful`
|
|
and `$debug --mode Diagnose-only --module freeze` skill directories. Both must be installed (they are installed together
|
|
by the gstack setup script).
|
|
|
|
Canonical execution does not write engagement analytics or telemetry.
|
|
|
|
## Setup
|
|
|
|
Ask the user which directory to restrict edits to. Use AskUserQuestion:
|
|
|
|
- Question: "Guard mode: which directory should edits be restricted to? Destructive command warnings are always on. Files outside the chosen path will be blocked from editing."
|
|
- Text input (not multiple choice) — the user types a path.
|
|
|
|
Once the user provides a directory path:
|
|
|
|
1. Resolve it to an absolute path:
|
|
```bash
|
|
FREEZE_DIR=$(cd "<user-provided-path>" 2>/dev/null && pwd)
|
|
echo "$FREEZE_DIR"
|
|
```
|
|
|
|
2. Ensure trailing slash and save to the freeze state file:
|
|
```bash
|
|
FREEZE_DIR="${FREEZE_DIR%/}/"
|
|
eval "$($GSTACK_BIN/gstack-paths)"
|
|
STATE_DIR="$GSTACK_STATE_ROOT"
|
|
mkdir -p "$STATE_DIR"
|
|
echo "$FREEZE_DIR" > "$STATE_DIR/freeze-dir.txt"
|
|
echo "Freeze boundary set: $FREEZE_DIR"
|
|
```
|
|
|
|
Tell the user:
|
|
- "**Guard mode active.** Two protections are now running:"
|
|
- "1. **Destructive command warnings** — rm -rf, DROP TABLE, force-push, etc. will warn before executing (you can override)"
|
|
- "2. **Edit boundary** — file edits restricted to `<path>/`. Edits outside this directory are blocked."
|
|
- "To remove the edit boundary, run `$debug --mode Diagnose-only --module unfreeze`. To deactivate everything, end the session."
|
|
|
|
## What's protected
|
|
|
|
See `$debug --mode Diagnose-only --module careful` for the full list of destructive command patterns and safe exceptions.
|
|
See `$debug --mode Diagnose-only --module freeze` for how edit boundary enforcement works.
|
|
<!-- GSTACK2_LEGACY_BODY_END source=guard -->
|
|
|
|
<!-- GSTACK2_BUG_FIX_START pr=679 anchor=GSTACK2_FIX_679_MATCH_USER_LANGUAGE -->
|
|
## Upstream judgment port: PR #679
|
|
|
|
[Match the user language](https://github.com/garrytan/gstack/pull/679)
|
|
|
|
### User-language rule
|
|
|
|
Write questions, progress updates, reports, and artifacts in the language used by the user. Source material, code identifiers, commands, and quotations may remain in their original language when translating them would reduce accuracy.
|
|
<!-- GSTACK2_BUG_FIX_END pr=679 -->
|