Check investigation session QA skip eligibility per ADR-034. Validates if staged files qualify for investigation-only exemption by checking against allowed paths (.agents/sessions/, .agents/analysis/, .serena/memories/, etc).
Checks if staged files qualify for investigation-only QA skip by validating them against allowed paths.
/plugin marketplace add rjmurillo/ai-agents/plugin install project-toolkit@ai-agentsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Check investigation session QA skip eligibility per ADR-034.
Check if I can skip QAAm I eligible for investigation-only?Verify investigation session eligibilityUse this skill when:
Use the qa agent instead when:
Eligible: falseUser Request: Check QA eligibility
|
v
+---------------------------------------------+
| Phase 1: GET STAGED FILES |
| - Run git diff --cached --name-only |
| - Collect all staged file paths |
+---------------------------------------------+
|
v
+---------------------------------------------+
| Phase 2: CHECK ALLOWLIST |
| - Compare against allowed paths: |
| * .agents/sessions/ |
| * .agents/analysis/ |
| * .agents/retrospective/ |
| * .serena/memories/ |
| * .agents/security/ |
| - Identify violations |
+---------------------------------------------+
|
v
+---------------------------------------------+
| Phase 3: RETURN RESULT |
| - Eligible: true if all files in allowlist |
| - Eligible: false if any violations |
| - Include violations list for debugging |
+---------------------------------------------+
| Skill | Purpose | When to Use |
|---|---|---|
| Test-InvestigationEligibility | Check if staged files qualify for investigation-only QA skip | Before committing with SKIPPED: investigation-only |
Check if staged files qualify for investigation-only QA skip per ADR-034.
python3 .claude/skills/session-qa-eligibility/scripts/test_investigation_eligibility.py
Returns JSON with:
| Field | Type | Description |
|---|---|---|
Eligible | boolean | true if all staged files are in allowlist |
StagedFiles | array | All staged file paths |
Violations | array | Files not in allowlist (empty if eligible) |
AllowedPaths | array | Reference list of allowed path prefixes |
Error | string | Present only on git errors |
| Code | Meaning |
|---|---|
| 0 | Success (eligibility result in JSON output) |
Note: The script always exits 0. Check the Eligible field in the JSON output to determine eligibility. The Error field is present when git commands fail.
| Scenario | Behavior | Output |
|---|---|---|
| Not in git repository | Returns JSON with Eligible: false | Error field explains the issue |
| Git command fails | Returns JSON with Eligible: false | Error field explains the issue |
| Empty staged files | Returns JSON with Eligible: true | StagedFiles is empty array |
| Mixed allowed/disallowed files | Returns JSON with Eligible: false | Violations lists disallowed files |
Eligible (investigation-only files):
{
"Eligible": true,
"StagedFiles": [".agents/sessions/.agents/sessions/2025-01-01-session-01.json"],
"Violations": [],
"AllowedPaths": [
".agents/sessions/",
".agents/analysis/",
".agents/retrospective/",
".serena/memories/",
".agents/security/"
]
}
Not eligible (contains code files):
{
"Eligible": false,
"StagedFiles": [
".agents/sessions/.agents/sessions/2025-01-01-session-01.json",
"scripts/MyScript.ps1"
],
"Violations": ["scripts/MyScript.ps1"],
"AllowedPaths": [
".agents/sessions/",
".agents/analysis/",
".agents/retrospective/",
".serena/memories/",
".agents/security/"
]
}
Git error:
{
"Eligible": false,
"StagedFiles": [],
"Violations": [],
"AllowedPaths": [
".agents/sessions/",
".agents/analysis/",
".agents/retrospective/",
".serena/memories/",
".agents/security/"
],
"Error": "Not in a git repository or git command failed"
}
This skill implements the verification step for Phase 2.5: QA Validation of the Session End Protocol:
SESSION-PROTOCOL.md (Phase 2.5: QA Validation)
│
├── Feature implementation → MUST invoke qa agent
│
└── Investigation session → MAY skip QA
│
└── test_investigation_eligibility.py
│
├── Eligible: true → Use "SKIPPED: investigation-only"
│
└── Eligible: false → MUST invoke qa agent
1. Stage your files
│
└── git add .agents/sessions/... .serena/memories/...
2. Run eligibility check
│
└── python3 .claude/skills/session-qa-eligibility/scripts/test_investigation_eligibility.py
3. Check output
│
├── Eligible: true
│ └── Safe to commit with "SKIPPED: investigation-only"
│
└── Eligible: false
│
├── Check Violations array
│ └── Either: Remove violating files from staging
│ └── Or: Start new session for implementation work
│
└── Invoke qa agent for the implementation work
Use this skill to validate the QA skip condition:
### Session End (COMPLETE ALL before closing)
| Req | Step | Status | Evidence |
|-----|------|--------|----------|
| MUST | Route to qa agent (feature implementation) | [x] | `SKIPPED: investigation-only` - Verified via test_investigation_eligibility.py |
These paths qualify for investigation-only QA exemption:
| Path | Purpose |
|---|---|
.agents/sessions/ | Session logs documenting work |
.agents/analysis/ | Investigation outputs and findings |
.agents/retrospective/ | Learnings and retrospective documents |
.serena/memories/ | Cross-session context storage |
.agents/security/ | Security assessments and reviews |
Important: This allowlist MUST match exactly with scripts/validate_session_json.py $InvestigationAllowlist. The patterns are validated by Pester tests to ensure consistency.
| Avoid | Why | Instead |
|---|---|---|
| Skipping eligibility check | May commit ineligible files with investigation-only skip | Always run the skill before using the skip |
| Ignoring violations | QA exemption won't be valid | Address violations or invoke qa agent |
| Using for code changes | Investigation-only is for analysis, not implementation | Start a new session for code work |
| Hardcoding path checks | Patterns may drift from validate_session_json.py | Use this skill which shares the same patterns |
After using this skill:
Eligible: trueViolations in outputError field in outputChecks if staged files qualify for investigation-only QA skip per ADR-034.
python3 .claude/skills/session-qa-eligibility/scripts/check_qa_eligibility.py
| Reference | Description |
|---|---|
| ADR-034 | Investigation Session QA Exemption architecture decision |
| SESSION-PROTOCOL.md | Session start/end requirements (Phase 2.5) |
| Issue #662 | Create QA skip eligibility check skill |
| validate_session_json.py | Uses same allowlist for CI validation |
| test_qa_eligibility.py | Pytest tests ensuring pattern consistency |
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.