Install
$ agentstack add skill-elsevanderberg1-product-discovery-skills-opportunity-analyst-reset ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Opportunity Analyst Reset
Removes the appended detected-opportunities section from every transcript in a folder, so you can re-run the opportunity-analyst skill cleanly - for example after a rubric change, or after running an older buggy version of the analyst.
This is a sibling skill to opportunity-analyst. It only strips the section that the analyst appended; it never touches the original transcript content above it. If a transcript has no such section, the file is left untouched.
Usage
/opportunity-analyst-reset
Typically the folder is the icp-screened-TEMP-[YYYY-MM-DD] folder produced by the icp-screener skill - which is also the folder opportunity-analyst operates on.
What gets removed
The analyst appends a section with this exact shape to the bottom of each transcript:
---
## Opportunity Analyst Skill detected Opportunities and Insights
_Extracted on [date]. Product metric used for Filter 2: [metric]._
### Opportunities
... (bullets) ...
### Non-priority opportunities (goal-misaligned)
...
### Solved / addressed (not counted)
...
### Insights
...
This skill removes everything from the --- separator (or the ## heading if no separator is present) through the end of the file.
Workflow
- Validate the folder.
- Confirm the folder exists. If not, stop and ask.
- Folder-name guard: if the folder name does NOT match the pattern
icp-screened-TEMP-*, do not proceed silently. List a few sample filenames inside, state that the folder name doesn't match the expected pattern, and require an explicit "yes, proceed" from the user before continuing. This guards against accidentally pointing at raw transcripts or some other unintended folder.
- Find transcripts. Use Glob to find all
.mdfiles in the folder. Excludescreening-overview.mdand any other non-transcript files. - Dry-run scan (always first). For each file:
- Read the file.
- Find the first line matching
## Opportunity Analyst Skill detected Opportunities and Insights(exact heading text). - Look back at the 1-2 lines immediately above the heading. If a
---separator is there (allowing one blank line between), the deletion starts at the---. Otherwise the deletion starts at the heading itself. - Deletion ends at the end of file.
- Record: filename, start line, end line.
- If the heading is not found, record the file as "skipped (no section found)".
- Show the dry-run report and ask for confirmation. Format:
``` Dry run on :
- files would be modified
- files would be skipped (no detected section found)
Files to modify (filename - lines removed):
- file-1.md - lines 142-198
- file-2.md - lines 87-134
...
Proceed with deletion? (yes/no) ```
- Wait for explicit confirmation. Per the user's change-safety rules, do not proceed without a clear yes.
- Strip the section. For each file with a match, use Edit to remove the identified content (replace the matched block with an empty string). Process files sequentially - this is fast enough that fan-out adds no value.
- Report. Final summary:
`` Done. files modified, files skipped. You can now re-run /opportunity-analyst . ``
Safety
- Dry-run first, always. Never edit before showing the user what would be removed and getting confirmation. The dry-run is the primary safety mechanism for this skill.
- No silent skips. Every file in the folder must be accounted for in the report - either as "modified" or "skipped" with the reason.
- Folder-name guard. Require explicit override if the folder name doesn't match the expected
icp-screened-TEMP-*pattern. - Idempotent. Running the skill twice in a row on the same folder is safe: the second run finds nothing to remove and skips every file.
- Conservative match. Only match the exact heading text. Do not match approximate or older variants without asking the user first - if the heading text has changed across versions, surface that to the user rather than silently catching the variant.
What this skill does NOT do
- No snapshot. The dry-run and folder-name guard are the safety mechanisms. If you want a backup, take one before invoking. (See the design discussion: snapshots accumulate as untouched folders unless someone cleans them up, and the upstream
icp-screeneroutput is itself a copy, so re-screening recovers the originals if needed.) - No modification above the detected section. Original transcript content is never touched.
- Does not chain into the analyst. This skill resets only. Run
/opportunity-analystafterward when you're ready.
Sibling relationship
opportunity-analyst and opportunity-analyst-reset are designed to be used together:
opportunity-analystappends.opportunity-analyst-resetremoves the appended section so the analyst can be re-run cleanly.
Keep both skills' output formats in sync: if the analyst's appended section heading text changes, update the matching heading in this skill at the same time.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Elsevanderberg1
- Source: Elsevanderberg1/product-discovery-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.