Skip to content
Back to skills

Bugs

ASecurity

> **Status:** Fixed > **Groomed:** 2026-10-01 (D0291) - premise reproduced at HEAD: `grep -rn CLAUDE_CONFIG_DIR tools/ evals/` finds nothing; `eval_run.py setup` prints `--- WORKER PROMPT (fresh session, skill installed) ---` and evals/README.md step 2 says only `with the candidate skill installed`. Narrowed: setup always prints the isolated command, so the personal-copy diff warning is dropped (one more check, no extra value), and setup copies no credentials > **Severity:** Medium > **Points...

  • 23 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 29, 2026
developmentgit

Security analysis

A100/100

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

Scanned October 2, 2026

npx -y skills add DarrenBenson/sdlc-studio --skill bugs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bugs?

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

Security grade badge for Bugs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/darrenbenson-bugs-sdlc-studio/badge)](https://www.skillsdirectory.com/skills/darrenbenson-bugs-sdlc-studio)

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
# BG0839: An eval worker session loads the personal skill ahead of the candidate copy, and nothing in the harness says so or prevents it

> **Status:** Fixed
> **Groomed:** 2026-10-01 (D0291) - premise reproduced at HEAD: `grep -rn CLAUDE_CONFIG_DIR tools/ evals/` finds nothing; `eval_run.py setup` prints `--- WORKER PROMPT (fresh session, skill installed) ---` and evals/README.md step 2 says only `with the candidate skill installed`. Narrowed: setup always prints the isolated command, so the personal-copy diff warning is dropped (one more check, no extra value), and setup copies no credentials
> **Severity:** Medium
> **Points:** 2
> **Affects:** tools/eval_run.py, evals/README.md, tools/tests/test_lean_eval_isolation.py, tools/tests/test_eval_run.py, changelog.d/BG0839.md
> **Evidence:** eval harness note (/tmp/evals-v6-final 06 run); HEAD 7e53a438 grep: no CLAUDE_CONFIG_DIR in tools/ or evals/
> **Created:** 2026-09-28
> **Created-by:** sdlc-studio file
> **Raised-by:** sdlc-studio; agent; v1
> **Raised-in-batch:** none open - raised outside a delivery batch, 2026-09-28T16:27:13Z

## Summary

Under `claude -p` a same-named project skill does not outrank the personal `~/.claude/skills/sdlc-studio`: the first v6-final eval 06 worker loaded the personal copy and diffed both, so that run was mixed and could not be the D0280 evidence. Clean runs need `CLAUDE_CONFIG_DIR`. evals/README.md says only 'with the candidate skill installed', and `tools/eval_run.py setup` neither isolates nor warns.

## Steps to Reproduce

With a personal copy installed, run a scenario worker per evals/README.md: the transcript shows the personal skill loaded.

## Proposed Fix

`eval_run.py setup` also builds `<dir>.claude-config/skills/sdlc-studio` (a sibling of the fixture, so its transcripts never dirty the fixture's `git status`) from the candidate skill (the working tree's `.claude/skills/sdlc-studio`) and prints the worker command as `CLAUDE_CONFIG_DIR=<dir>.claude-config claude -p ...`. evals/README.md step 2 says why (a personal copy outranks a project copy under `claude -p`) and that the operator copies `~/.claude/.credentials.json` into that directory, mode 600, and deletes it after the run; setup never copies a credential.

## Acceptance Criteria

- [ ] **AC1** Given a scenario with a fixture spec, when `eval_run.py setup --scenario <id> --dir <scratch>` runs, then `<scratch>.claude-config/skills/sdlc-studio/SKILL.md` exists, nothing is written under `<scratch>` beyond the fixture, no credential file is written, and stdout carries a worker command beginning `CLAUDE_CONFIG_DIR=<scratch>.claude-config`. Fails on: HEAD, which builds no config directory and prints no command
  - **Verify:** pytest tools/tests/test_lean_eval_isolation.py::EvalIsolationTests::test_setup_isolates_the_candidate_skill

## Revision History

| Date | Author | Change |
| --- | --- | --- |
| 2026-09-28 | sdlc-studio | Filed |

Files in this skill

  • BG0001-workflow-cr-status-vocabulary-diverges-across-refe.md2.8 KB
  • BG0002-reconcile-py-and-status-py-both-omit-bug-and-workf.md2.4 KB
  • BG0003-verify-ac-py-only-parses-ac-headings-silently-igno.md2.3 KB
  • BG0004-review-prep-persona-check-reads-personas-md-while.md2.2 KB
  • BG0005-prd-performance-nfr-falsely-claims-all-scripts-are.md1.6 KB
  • BG0006-prd-names-its-own-artifact-metadata-format-two-inc.md1.6 KB
  • BG0007-prd-quality-assessment-conceals-four-open-bugs-inc.md2.1 KB
  • BG0008-trd-script-contract-rule-5-is-incomplete-verify-ac.md2.2 KB
  • BG0009-trd-181-script-layer-tests-all-must-pass-before-re.md2 KB
  • BG0010-tsd-instruction-hygiene-release-gate-validate-py-i.md1.6 KB
  • BG0011-tsd-availability-gate-is-inverted-the-cited-test-p.md1.8 KB
  • BG0012-tsd-lint-links-gate-is-skill-scoped-so-the-sdlc-st.md1.9 KB
  • BG0013-persona-section-headings-carry-a-high-suffix-that.md2.1 KB
  • BG0014-story-verify-lines-do-not-test-what-their-acs-asse.md3.2 KB
  • BG0015-epic-ownership-double-mapping-github-sync-review-p.md2.6 KB
  • BG0016-ep0004-s-prd-reference-points-to-section-10-with-a.md1.6 KB
  • BG0017-rfc0003-buries-a-fixable-false-guarantee-reconcile.md2 KB
  • BG0018-reconcile-index-status-parser-matches-title.md3.1 KB
  • BG0019-determinism-checks-mishandle-bug-artifact-class.md2.7 KB
  • BG0020-parser-rejects-consuming-repo-house-templates.md3.1 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.