Skip to content
Back to skills

Done

ASecurity

The write-scrut-tests skill (`plugins/write-scrut-tests/`) is focused entirely on CLI binary testing. Two enhancements are needed:

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 2, 2026
ai-agentsgoshellbashtesting

Works with

  • cli

Security analysis

A100/100

Pro scans all 21 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add cboone/agent-harness-plugins --skill done --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Done?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Done
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/cboone-done-a536d43f/badge)](https://www.skillsdirectory.com/skills/cboone-done-a536d43f)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# 2026-03-12: Update write-scrut-tests skill (issues #209 and #211)

## Context

The write-scrut-tests skill (`plugins/write-scrut-tests/`) is focused entirely on CLI binary testing. Two enhancements are needed:

- **Issue #211**: The SCRUT.md reference shows multi-command test blocks as long single-line `&&` chains. Scrut supports a `>` continuation prefix (inherited from cram) that improves readability. The guide should document and recommend this syntax.
- **Issue #209**: The skill lacks guidance for testing zsh plugins and sourced library code with scrut. This involves different invocation patterns (`source` instead of `${TOOL_BIN}`), a critical `ERR_EXIT`/`shopt` pitfall, the one-command-per-block constraint in markdown mode, and the `--shell zsh` flag.

Both are new capabilities, so the plugin version bumps from 1.0.2 to 1.1.0 (minor).

## Changes

### 1. Add continuation line syntax to SCRUT.md (#211)

**File:** `plugins/write-scrut-tests/skills/write-scrut-tests/references/SCRUT.md`

Insert a new `### Continuation Lines for Long Commands` subsection between "One Assertion Per Block" (ends line 138) and "Block Order" (starts line 140) in the Test Structure section.

Content:

- Explain the `>` continuation prefix for splitting long `&&`-chained commands across lines
- Show the existing single-line pattern rewritten with continuation lines (use the "Config init creates file" example already at line 134)
- Recommend continuation lines when commands exceed a comfortable line length
- Note that `>` must be followed by exactly two spaces of indentation for readability (indentation is literal)

Also update the existing multi-command example at line 131-138 to cross-reference the new subsection, adding a note like: "For long command chains, see `[Continuation Lines for Long Commands](#continuation-lines-for-long-commands)`."

### 2. Create zsh plugin testing reference file (#209)

**File (new):** `plugins/write-scrut-tests/skills/write-scrut-tests/references/zsh-plugin-testing.md`

Structure:

```text
# Testing Zsh Plugins and Sourced Libraries

## Shell Selection
- --shell zsh flag for scrut test / scrut update
- Makefile target variant

## Source-Based Invocation
- source "${TESTDIR}/path/to/helper.zsh" replaces ${TOOL_BIN}
- $TESTDIR references the test file's directory

## One Command Per Block
- Each fenced scrut block supports only one $ line
- Additional $ lines are treated as expected output
- Correct vs incorrect patterns

## ERR_EXIT and shopt Pitfall
- Problem: scrut's inter-block state management uses bash commands (shopt, alias -p)
- When sourced file sets ERR_EXIT at file level, subsequent blocks fail
- Workaround: emulate -L zsh with strict options inside functions, not at file level
- Good vs bad patterns

## Complete Example
- Full test file demonstrating all patterns
```

### 3. Update SKILL.md

**File:** `plugins/write-scrut-tests/skills/write-scrut-tests/SKILL.md`

- Update YAML frontmatter `description` to broaden scope: "...scrut test files for CLI binaries and zsh plugins..."
- Add "(4) testing zsh plugins or sourced libraries with scrut" to the "Use when" list
- Add a bullet under "### Test Structure" (line 26): continuation line prefix for long commands
- Add a new "## Zsh Plugin and Library Testing" section before "## Validation" (following the pattern from `write-zsh-scripts/SKILL.md` lines 64-72), pointing to `./references/zsh-plugin-testing.md` with key bullet points

### 4. Update plugin.json

**File:** `plugins/write-scrut-tests/.claude-plugin/plugin.json`

- Bump `version` from `"1.0.2"` to `"1.1.0"`
- Update `description` to mention zsh testing
- Add `"zsh"` to `keywords` array

### 5. Update marketplace.json

**File:** `.claude-plugin/marketplace.json`

- Update `write-scrut-tests` entry (lines 544-557): bump `version` to `"1.1.0"`, update `description`, add `"zsh"` to `keywords`
- Do NOT bump the marketplace `metadata.version` (no plugins added or removed)

### 6. Update plugin README

**File:** `plugins/write-scrut-tests/README.md`

- Update description paragraph (line 20) to mention zsh plugin testing
- Add a zsh testing example to the Examples section

### 7. Update root README

**File:** `README.md`

- Update the write-scrut-tests description (line 233) to mention zsh plugin/library testing

### 8. Update CLAUDE.md structure tree

**File:** `CLAUDE.md`

- Add `zsh-plugin-testing.md` under `references/` in the `write-scrut-tests` tree entry (line 391)

## Commit Strategy

1. `feat: document continuation line syntax in scrut guide (#211)` -- SCRUT.md changes, SKILL.md continuation bullet
1. `feat: add zsh plugin and sourced-library testing guide (#209)` -- new zsh-plugin-testing.md, SKILL.md zsh section
1. `chore: bump write-scrut-tests to v1.1.0` -- plugin.json, marketplace.json, both READMEs, CLAUDE.md tree

## Verification

1. Review all modified files for consistent cross-references
1. Run `/check-versions` to verify plugin.json and marketplace.json versions match
1. Confirm CLAUDE.md tree accurately reflects the new file structure
1. Read through the new zsh-plugin-testing.md to ensure technical accuracy of the ERR_EXIT pitfall description
1. Verify the continuation line examples use correct `>` syntax

Files in this skill

  • 2026-02-15-add-create-worktree-skill-with-prompt-injection.md3.6 KB
  • 2026-02-16-mention-issues-in-prs.md4.2 KB
  • 2026-02-17-add-goreleaser-homebrew-skill.md9.1 KB
  • 2026-02-17-add-issue-status-management.md5.3 KB
  • 2026-02-17-add-lint-and-fix-skill.md3.6 KB
  • 2026-02-17-add-setup-gitleaks-skill.md4.5 KB
  • 2026-02-17-copilot-instructions-defaults.md3.5 KB
  • 2026-02-17-expand-repo-bootstrap-coverage.md6.2 KB
  • 2026-02-17-readme-restructuring.md5.4 KB
  • 2026-02-18-improve-readmes.md6.6 KB
  • 2026-02-18-setup-ci.md3.8 KB
  • 2026-02-20-create-create-plugin-skill.md5.4 KB
  • 2026-02-20-extract-copilot-graphql-into-script.md6.9 KB
  • 2026-02-20-restructure-readmes-per-plugin.md5.4 KB
  • 2026-02-21-add-govulncheck-to-go-scaffolding.md6.3 KB
  • 2026-02-21-consolidate-ci-workflows.md1000 B
  • 2026-03-01-add-changelog-to-scaffolding.md2.9 KB
  • 2026-03-01-add-done-plans-handling-to-new-repo-setup.md3 KB
  • 2026-03-01-add-recommended-permissions-to-readmes.md6.3 KB
  • 2026-03-01-create-bootstrap-project-skill.md7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…