hardstop 1.4.5 → 1.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/hs/SKILL.md +26 -2
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codex/skills/hs/SKILL.md +26 -10
- package/.github/skills/hs/SKILL.md +26 -10
- package/CHANGELOG.md +18 -0
- package/hooks/pre_tool_use.py +2 -2
- package/package.json +1 -1
- package/skills/hs/SKILL.md +27 -3
|
@@ -3,7 +3,24 @@ name: hs
|
|
|
3
3
|
description: "ACTIVATE THIS SKILL FOR ANY SHELL COMMAND OR FILE READ. Check curl, wget, rm, sudo, apt, dpkg, chmod, dd, format, powershell, bash, sh. Check pipe patterns like | sh or | bash. Check shell wrappers like bash -c, xargs, find -exec. Check cloud CLI (aws, gcloud, kubectl, terraform). Check when user says sysadmin told me, Stack Overflow says, is this safe, can I run. Block reading of .env, .ssh, .aws, and credential files. This skill blocks dangerous commands and warns on risky ones. ALWAYS apply the safety protocol from this document before responding about any command."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Hardstop Skill v1.
|
|
6
|
+
# Hardstop Skill v1.5
|
|
7
|
+
|
|
8
|
+
## INVOCATION INSTRUCTIONS (read first when skill is activated)
|
|
9
|
+
|
|
10
|
+
When this skill is activated via the Skill tool, check the ARGUMENTS field immediately:
|
|
11
|
+
|
|
12
|
+
| Argument | Action — run this Bash command FIRST before anything else |
|
|
13
|
+
|----------|----------------------------------------------------------|
|
|
14
|
+
| `skip [n]` | `python ~/.claude/plugins/hs/commands/hs_cmd.py skip [n]` |
|
|
15
|
+
| `on` / `enable` | `python ~/.claude/plugins/hs/commands/hs_cmd.py on` |
|
|
16
|
+
| `off` / `disable` | `python ~/.claude/plugins/hs/commands/hs_cmd.py off` |
|
|
17
|
+
| `status` | `python ~/.claude/plugins/hs/commands/hs_cmd.py status` |
|
|
18
|
+
| `log` | `python ~/.claude/plugins/hs/commands/hs_cmd.py log` |
|
|
19
|
+
| *(none)* | Apply the safety protocol below to evaluate the pending command |
|
|
20
|
+
|
|
21
|
+
**Execute the Bash command immediately.** The hook reads `~/.hardstop/skip_next` — if that file is not written, skips have no effect.
|
|
22
|
+
|
|
23
|
+
---
|
|
7
24
|
|
|
8
25
|
> **Note:** This skill complements the Hardstop plugin. The plugin provides deterministic protection via hooks; this skill provides LLM-level awareness for platforms without hook support.
|
|
9
26
|
|
|
@@ -496,6 +513,13 @@ If you need to read this file, use '/hs skip' first.
|
|
|
496
513
|
|
|
497
514
|
## Changelog
|
|
498
515
|
|
|
516
|
+
### v1.5 (2026-02-22)
|
|
517
|
+
- **NEW FEATURE:** Invocation Instructions — explicit instructions for executing hs_cmd.py when the skill is activated with arguments
|
|
518
|
+
- Added "INVOCATION INSTRUCTIONS" section at the top of the skill (before the safety protocol)
|
|
519
|
+
- Maps skill arguments (`skip`, `on`, `off`, `status`, `log`) to their corresponding Bash commands via `~/.claude/plugins/hs/commands/hs_cmd.py`
|
|
520
|
+
- Fixes skip bypass not working in Claude Code VSCode extension: LLM now runs `python ~/.claude/plugins/hs/commands/hs_cmd.py skip [n]` immediately on `/hs skip` invocation
|
|
521
|
+
- Ensures `~/.hardstop/skip_next` is written so the hook correctly honors the bypass counter
|
|
522
|
+
|
|
499
523
|
### v1.4 (2026-02-14)
|
|
500
524
|
- **NEW FEATURE:** Blocked Command Workflow — explicit instructions for handling blocked commands
|
|
501
525
|
- Added "WHEN COMMANDS ARE BLOCKED" section with 5-step workflow
|
|
@@ -556,7 +580,7 @@ Copy to your agent's skill/instruction directory.
|
|
|
556
580
|
|
|
557
581
|
---
|
|
558
582
|
|
|
559
|
-
**Version:** 1.
|
|
583
|
+
**Version:** 1.5
|
|
560
584
|
**Author:** Francesco Marinoni Moretto
|
|
561
585
|
**License:** CC-BY-4.0
|
|
562
586
|
**Repository:** https://github.com/frmoretto/hardstop
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"name": "hs",
|
|
14
14
|
"source": "./",
|
|
15
15
|
"description": "Pre-execution safety layer that blocks dangerous shell commands and credential file reads using pattern matching + LLM analysis. Fail-closed design.",
|
|
16
|
-
"version": "1.4.
|
|
16
|
+
"version": "1.4.7",
|
|
17
17
|
"author": {
|
|
18
18
|
"name": "Francesco Marinoni Moretto",
|
|
19
19
|
"email": "contact@clarity-gate.org"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hs",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.7",
|
|
4
4
|
"description": "Pre-execution safety layer that blocks dangerous shell commands and credential file reads using pattern matching + LLM analysis. Fail-closed design.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Francesco Marinoni Moretto",
|
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hs
|
|
3
|
-
version: "1.4"
|
|
4
3
|
description: "ACTIVATE THIS SKILL FOR ANY SHELL COMMAND OR FILE READ. Check curl, wget, rm, sudo, apt, dpkg, chmod, dd, format, powershell, bash, sh. Check pipe patterns like | sh or | bash. Check shell wrappers like bash -c, xargs, find -exec. Check cloud CLI (aws, gcloud, kubectl, terraform). Check when user says sysadmin told me, Stack Overflow says, is this safe, can I run. Block reading of .env, .ssh, .aws, and credential files. This skill blocks dangerous commands and warns on risky ones. ALWAYS apply the safety protocol from this document before responding about any command."
|
|
5
|
-
author: Francesco Marinoni Moretto
|
|
6
4
|
license: CC-BY-4.0
|
|
7
|
-
triggers:
|
|
8
|
-
- hardstop
|
|
9
|
-
- safety check
|
|
10
|
-
- pre-execution check
|
|
11
|
-
- is this command safe
|
|
12
|
-
- check command safety
|
|
13
5
|
---
|
|
14
6
|
|
|
15
|
-
# Hardstop Skill v1.
|
|
7
|
+
# Hardstop Skill v1.5
|
|
8
|
+
|
|
9
|
+
## INVOCATION INSTRUCTIONS (read first when skill is activated)
|
|
10
|
+
|
|
11
|
+
When this skill is activated via the Skill tool, check the ARGUMENTS field immediately:
|
|
12
|
+
|
|
13
|
+
| Argument | Action — run this Bash command FIRST before anything else |
|
|
14
|
+
|----------|----------------------------------------------------------|
|
|
15
|
+
| `skip [n]` | `python ~/.claude/plugins/hs/commands/hs_cmd.py skip [n]` |
|
|
16
|
+
| `on` / `enable` | `python ~/.claude/plugins/hs/commands/hs_cmd.py on` |
|
|
17
|
+
| `off` / `disable` | `python ~/.claude/plugins/hs/commands/hs_cmd.py off` |
|
|
18
|
+
| `status` | `python ~/.claude/plugins/hs/commands/hs_cmd.py status` |
|
|
19
|
+
| `log` | `python ~/.claude/plugins/hs/commands/hs_cmd.py log` |
|
|
20
|
+
| *(none)* | Apply the safety protocol below to evaluate the pending command |
|
|
21
|
+
|
|
22
|
+
**Execute the Bash command immediately.** The hook reads `~/.hardstop/skip_next` — if that file is not written, skips have no effect.
|
|
23
|
+
|
|
24
|
+
---
|
|
16
25
|
|
|
17
26
|
> **Note:** This skill complements the Hardstop plugin. The plugin provides deterministic protection via hooks; this skill provides LLM-level awareness for platforms without hook support.
|
|
18
27
|
|
|
@@ -505,6 +514,13 @@ If you need to read this file, use '/hs skip' first.
|
|
|
505
514
|
|
|
506
515
|
## Changelog
|
|
507
516
|
|
|
517
|
+
### v1.5 (2026-02-22)
|
|
518
|
+
- **NEW FEATURE:** Invocation Instructions — explicit instructions for executing hs_cmd.py when the skill is activated with arguments
|
|
519
|
+
- Added "INVOCATION INSTRUCTIONS" section at the top of the skill (before the safety protocol)
|
|
520
|
+
- Maps skill arguments (`skip`, `on`, `off`, `status`, `log`) to their corresponding Bash commands via `~/.claude/plugins/hs/commands/hs_cmd.py`
|
|
521
|
+
- Fixes skip bypass not working in Claude Code VSCode extension: LLM now runs `python ~/.claude/plugins/hs/commands/hs_cmd.py skip [n]` immediately on `/hs skip` invocation
|
|
522
|
+
- Ensures `~/.hardstop/skip_next` is written so the hook correctly honors the bypass counter
|
|
523
|
+
|
|
508
524
|
### v1.4 (2026-02-14)
|
|
509
525
|
- **NEW FEATURE:** Blocked Command Workflow — explicit instructions for handling blocked commands
|
|
510
526
|
- Added "WHEN COMMANDS ARE BLOCKED" section with 5-step workflow
|
|
@@ -565,7 +581,7 @@ Copy to your agent's skill/instruction directory.
|
|
|
565
581
|
|
|
566
582
|
---
|
|
567
583
|
|
|
568
|
-
**Version:** 1.
|
|
584
|
+
**Version:** 1.5
|
|
569
585
|
**Author:** Francesco Marinoni Moretto
|
|
570
586
|
**License:** CC-BY-4.0
|
|
571
587
|
**Repository:** https://github.com/frmoretto/hardstop
|
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hs
|
|
3
|
-
version: "1.4"
|
|
4
3
|
description: "ACTIVATE THIS SKILL FOR ANY SHELL COMMAND OR FILE READ. Check curl, wget, rm, sudo, apt, dpkg, chmod, dd, format, powershell, bash, sh. Check pipe patterns like | sh or | bash. Check shell wrappers like bash -c, xargs, find -exec. Check cloud CLI (aws, gcloud, kubectl, terraform). Check when user says sysadmin told me, Stack Overflow says, is this safe, can I run. Block reading of .env, .ssh, .aws, and credential files. This skill blocks dangerous commands and warns on risky ones. ALWAYS apply the safety protocol from this document before responding about any command."
|
|
5
|
-
author: Francesco Marinoni Moretto
|
|
6
4
|
license: CC-BY-4.0
|
|
7
|
-
triggers:
|
|
8
|
-
- hardstop
|
|
9
|
-
- safety check
|
|
10
|
-
- pre-execution check
|
|
11
|
-
- is this command safe
|
|
12
|
-
- check command safety
|
|
13
5
|
---
|
|
14
6
|
|
|
15
|
-
# Hardstop Skill v1.
|
|
7
|
+
# Hardstop Skill v1.5
|
|
8
|
+
|
|
9
|
+
## INVOCATION INSTRUCTIONS (read first when skill is activated)
|
|
10
|
+
|
|
11
|
+
When this skill is activated via the Skill tool, check the ARGUMENTS field immediately:
|
|
12
|
+
|
|
13
|
+
| Argument | Action — run this Bash command FIRST before anything else |
|
|
14
|
+
|----------|----------------------------------------------------------|
|
|
15
|
+
| `skip [n]` | `python ~/.claude/plugins/hs/commands/hs_cmd.py skip [n]` |
|
|
16
|
+
| `on` / `enable` | `python ~/.claude/plugins/hs/commands/hs_cmd.py on` |
|
|
17
|
+
| `off` / `disable` | `python ~/.claude/plugins/hs/commands/hs_cmd.py off` |
|
|
18
|
+
| `status` | `python ~/.claude/plugins/hs/commands/hs_cmd.py status` |
|
|
19
|
+
| `log` | `python ~/.claude/plugins/hs/commands/hs_cmd.py log` |
|
|
20
|
+
| *(none)* | Apply the safety protocol below to evaluate the pending command |
|
|
21
|
+
|
|
22
|
+
**Execute the Bash command immediately.** The hook reads `~/.hardstop/skip_next` — if that file is not written, skips have no effect.
|
|
23
|
+
|
|
24
|
+
---
|
|
16
25
|
|
|
17
26
|
> **Note:** This skill complements the Hardstop plugin. The plugin provides deterministic protection via hooks; this skill provides LLM-level awareness for platforms without hook support.
|
|
18
27
|
|
|
@@ -505,6 +514,13 @@ If you need to read this file, use '/hs skip' first.
|
|
|
505
514
|
|
|
506
515
|
## Changelog
|
|
507
516
|
|
|
517
|
+
### v1.5 (2026-02-22)
|
|
518
|
+
- **NEW FEATURE:** Invocation Instructions — explicit instructions for executing hs_cmd.py when the skill is activated with arguments
|
|
519
|
+
- Added "INVOCATION INSTRUCTIONS" section at the top of the skill (before the safety protocol)
|
|
520
|
+
- Maps skill arguments (`skip`, `on`, `off`, `status`, `log`) to their corresponding Bash commands via `~/.claude/plugins/hs/commands/hs_cmd.py`
|
|
521
|
+
- Fixes skip bypass not working in Claude Code VSCode extension: LLM now runs `python ~/.claude/plugins/hs/commands/hs_cmd.py skip [n]` immediately on `/hs skip` invocation
|
|
522
|
+
- Ensures `~/.hardstop/skip_next` is written so the hook correctly honors the bypass counter
|
|
523
|
+
|
|
508
524
|
### v1.4 (2026-02-14)
|
|
509
525
|
- **NEW FEATURE:** Blocked Command Workflow — explicit instructions for handling blocked commands
|
|
510
526
|
- Added "WHEN COMMANDS ARE BLOCKED" section with 5-step workflow
|
|
@@ -565,7 +581,7 @@ Copy to your agent's skill/instruction directory.
|
|
|
565
581
|
|
|
566
582
|
---
|
|
567
583
|
|
|
568
|
-
**Version:** 1.
|
|
584
|
+
**Version:** 1.5
|
|
569
585
|
**Author:** Francesco Marinoni Moretto
|
|
570
586
|
**License:** CC-BY-4.0
|
|
571
587
|
**Repository:** https://github.com/frmoretto/hardstop
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to Hardstop will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.4.7] - 2026-02-22
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **skills/ (all copies):** Skill v1.5 — added "INVOCATION INSTRUCTIONS" section at the top of all SKILL.md files. Maps skill arguments (`skip`, `on`, `off`, `status`, `log`) to their corresponding `hs_cmd.py` Bash commands, fixing skip bypass not working in Claude Code VSCode extension
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **skills/ (all copies):** Removed unsupported YAML frontmatter fields (`version`, `author`, `triggers`) from `.claude/`, `.codex/`, and `.github/` skill copies — these produce IDE warnings and are ignored by the Claude Code skill parser
|
|
12
|
+
- **CLAUDE.md:** Documented Claude Code skill frontmatter constraints and correct per-platform YAML schema
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## [1.4.6] - 2026-02-17
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
- **hooks/pre_tool_use.py**: Replace `(?:\s+.*)?$` with `(?:[\s\S]+)?$` in git safe patterns so multiline arguments (e.g. heredoc commit messages) are not incorrectly blocked
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
5
23
|
## [1.4.5] - 2026-02-17
|
|
6
24
|
|
|
7
25
|
### Fixed
|
package/hooks/pre_tool_use.py
CHANGED
|
@@ -144,8 +144,8 @@ SAFE_PATTERNS = [
|
|
|
144
144
|
|
|
145
145
|
# Git standard workflow (recoverable via reflog)
|
|
146
146
|
# Excludes: reset (--hard loses uncommitted work), clean (deletes untracked), rebase --exec (runs shell)
|
|
147
|
-
r"^git\s+(add|commit|push|pull|fetch|clone|stash|checkout|switch|restore|merge|cherry-pick|branch|tag|init|config|am|apply|bisect|blame|bundle|format-patch|gc|mv|notes|reflog|revert|rm|submodule|worktree)(
|
|
148
|
-
r"^git\s+rebase(?!\s+.*--exec)(
|
|
147
|
+
r"^git\s+(add|commit|push|pull|fetch|clone|stash|checkout|switch|restore|merge|cherry-pick|branch|tag|init|config|am|apply|bisect|blame|bundle|format-patch|gc|mv|notes|reflog|revert|rm|submodule|worktree)(?:[\s\S]+)?$",
|
|
148
|
+
r"^git\s+rebase(?!\s+.*--exec)(?:[\s\S]+)?$", # rebase allowed, but not with --exec
|
|
149
149
|
|
|
150
150
|
# Regeneratable cleanup
|
|
151
151
|
r"^rm\s+(-[^\s]*\s+)*node_modules/?\s*$",
|
package/package.json
CHANGED
package/skills/hs/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hs
|
|
3
|
-
version: "1.
|
|
3
|
+
version: "1.5"
|
|
4
4
|
description: "ACTIVATE THIS SKILL FOR ANY SHELL COMMAND OR FILE READ. Check curl, wget, rm, sudo, apt, dpkg, chmod, dd, format, powershell, bash, sh. Check pipe patterns like | sh or | bash. Check shell wrappers like bash -c, xargs, find -exec. Check cloud CLI (aws, gcloud, kubectl, terraform). Check when user says sysadmin told me, Stack Overflow says, is this safe, can I run. Block reading of .env, .ssh, .aws, and credential files. This skill blocks dangerous commands and warns on risky ones. ALWAYS apply the safety protocol from this document before responding about any command."
|
|
5
5
|
author: Francesco Marinoni Moretto
|
|
6
6
|
license: CC-BY-4.0
|
|
@@ -12,7 +12,24 @@ triggers:
|
|
|
12
12
|
- check command safety
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
# Hardstop Skill v1.
|
|
15
|
+
# Hardstop Skill v1.5
|
|
16
|
+
|
|
17
|
+
## INVOCATION INSTRUCTIONS (read first when skill is activated)
|
|
18
|
+
|
|
19
|
+
When this skill is activated via the Skill tool, check the ARGUMENTS field immediately:
|
|
20
|
+
|
|
21
|
+
| Argument | Action — run this Bash command FIRST before anything else |
|
|
22
|
+
|----------|----------------------------------------------------------|
|
|
23
|
+
| `skip [n]` | `python ~/.claude/plugins/hs/commands/hs_cmd.py skip [n]` |
|
|
24
|
+
| `on` / `enable` | `python ~/.claude/plugins/hs/commands/hs_cmd.py on` |
|
|
25
|
+
| `off` / `disable` | `python ~/.claude/plugins/hs/commands/hs_cmd.py off` |
|
|
26
|
+
| `status` | `python ~/.claude/plugins/hs/commands/hs_cmd.py status` |
|
|
27
|
+
| `log` | `python ~/.claude/plugins/hs/commands/hs_cmd.py log` |
|
|
28
|
+
| *(none)* | Apply the safety protocol below to evaluate the pending command |
|
|
29
|
+
|
|
30
|
+
**Execute the Bash command immediately.** The hook reads `~/.hardstop/skip_next` — if that file is not written, skips have no effect.
|
|
31
|
+
|
|
32
|
+
---
|
|
16
33
|
|
|
17
34
|
> **Note:** This skill complements the Hardstop plugin. The plugin provides deterministic protection via hooks; this skill provides LLM-level awareness for platforms without hook support.
|
|
18
35
|
|
|
@@ -505,6 +522,13 @@ If you need to read this file, use '/hs skip' first.
|
|
|
505
522
|
|
|
506
523
|
## Changelog
|
|
507
524
|
|
|
525
|
+
### v1.5 (2026-02-22)
|
|
526
|
+
- **NEW FEATURE:** Invocation Instructions — explicit instructions for executing hs_cmd.py when the skill is activated with arguments
|
|
527
|
+
- Added "INVOCATION INSTRUCTIONS" section at the top of the skill (before the safety protocol)
|
|
528
|
+
- Maps skill arguments (`skip`, `on`, `off`, `status`, `log`) to their corresponding Bash commands via `~/.claude/plugins/hs/commands/hs_cmd.py`
|
|
529
|
+
- Fixes skip bypass not working in Claude Code VSCode extension: LLM now runs `python ~/.claude/plugins/hs/commands/hs_cmd.py skip [n]` immediately on `/hs skip` invocation
|
|
530
|
+
- Ensures `~/.hardstop/skip_next` is written so the hook correctly honors the bypass counter
|
|
531
|
+
|
|
508
532
|
### v1.4 (2026-02-14)
|
|
509
533
|
- **NEW FEATURE:** Blocked Command Workflow — explicit instructions for handling blocked commands
|
|
510
534
|
- Added "WHEN COMMANDS ARE BLOCKED" section with 5-step workflow
|
|
@@ -565,7 +589,7 @@ Copy to your agent's skill/instruction directory.
|
|
|
565
589
|
|
|
566
590
|
---
|
|
567
591
|
|
|
568
|
-
**Version:** 1.
|
|
592
|
+
**Version:** 1.5
|
|
569
593
|
**Author:** Francesco Marinoni Moretto
|
|
570
594
|
**License:** CC-BY-4.0
|
|
571
595
|
**Repository:** https://github.com/frmoretto/hardstop
|