Skill: Adding a new Solution or Tool to SOLUTIONS.md
This skill provides instructions for Junie to analyze a new hacking guide, video, or tool, determine if it belongs in SOLUTIONS.md or REFERENCES.md, collect necessary metadata, and add it to the correct section f SOLUTIONS.md following the existing format.
Distinguishing Between SOLUTIONS.md and REFERENCES.md
Unless the user explicitly specifies the target file, follow these rules:
SOLUTIONS.md: Use this for content that is specifically a "how-to" for hacking Juice Shop or a tool that automates/assists in hacking it.
- Walkthroughs: Step-by-step guides for solving specific challenges.
- Hacking Videos: Screencasts of hacking sessions.
- Scripts & Tools: Python scripts, ZAP templates, etc., that solve or help solve challenges.
- Spoilers: Any content that contains full spoilers for challenges should ideally go here.
REFERENCES.md: Use this for general mentions, news, blog posts about the project, conference talks, or appearances.
- News: Announcements of new releases, leadership changes, or project milestones.
- General Mentions: Blog posts or podcasts where Juice Shop is mentioned but not the primary focus or not a solution guide.
- Appearances: Conference or meetup talks, lectures, and trainings.
- Educational: General application security education that uses Juice Shop as an example but isn't a "how-to-solve-it" guide.
If in doubt, and the content contains spoilers (indicated by :godmode: or :bulb:), prefer SOLUTIONS.md if it is a guide/video/tool. If it is a blog post or talk, prefer REFERENCES.md with the appropriate icon.
General Workflow
- Analyze the Initial Prompt: Identify the URL(s) and any provided metadata (author, title, tool name).
- Crawl URL(s): Use the
bash tool with curl or fetch_url to fetch the content of the provided link(s).
- Look for: Title, Author, Juice Shop version (🧃), Language code (e.g.,
:de:).
- Determine Category:
- Hacking Videos
- Walkthroughs
- Scripts & Tools
- Infer Metadata:
🧃vX.x: Look for the version of Juice Shop mentioned in the content. If not found, use the latest major version if the content is recent.
:broken_heart:: Mark resources that rely on cheating (e.g., using hints or external tools not intended for the challenge).
- Language code: e.g.,
(:de:), (:es:), (:id:).
- Identify Missing Information: If mandatory information (like the Juice Shop version or author) is missing, ask the user.
- Find the Correct Section: Locate the target section in
SOLUTIONS.md.
- Format the Entry: Use the specific formatting rules for the identified type.
- Update Table of Contents: If a new top-level section is added (rare), update the TOC.
- Skip Validation Commands: Since
SOLUTIONS.md is a plain text file, running npm run lint, npm test, or any other validation commands is unnecessary if only this file (and/or REFERENCES.md) was modified.
Common Formatting Rules
- Use
* for list items.
- Links are in
[Title](URL) format.
- Mention authors with "by Name".
- The Juice Shop version is mentioned as
(🧃vX.x).
- For non-English content, add the language code in parentheses, e.g.,
(:de:), (:es:).
- Everything in
SOLUTIONS.md is considered a spoiler, so individual icons like :godmode: are generally not used for the entry itself (unless it's a sub-item in a list that needs distinguishing).
1---2name: add-solution3description: Add Solution4---56# Skill: Adding a new Solution or Tool to SOLUTIONS.md78This skill provides instructions for Junie to analyze a new hacking guide, video, or tool, determine if it belongs in `SOLUTIONS.md` or `REFERENCES.md`, collect necessary metadata, and add it to the correct section f `SOLUTIONS.md` following the existing format.910## Distinguishing Between SOLUTIONS.md and REFERENCES.md1112Unless the user explicitly specifies the target file, follow these rules:13141. **SOLUTIONS.md**: Use this for content that is specifically a "how-to" for hacking Juice Shop or a tool that automates/assists in hacking it.15 - *Walkthroughs*: Step-by-step guides for solving specific challenges.16 - *Hacking Videos*: Screencasts of hacking sessions.17 - *Scripts & Tools*: Python scripts, ZAP templates, etc., that solve or help solve challenges.18 - *Spoilers*: Any content that contains full spoilers for challenges should ideally go here.19202. **REFERENCES.md**: Use this for general mentions, news, blog posts about the project, conference talks, or appearances.21 - *News*: Announcements of new releases, leadership changes, or project milestones.22 - *General Mentions*: Blog posts or podcasts where Juice Shop is mentioned but not the primary focus or not a solution guide.23 - *Appearances*: Conference or meetup talks, lectures, and trainings.24 - *Educational*: General application security education that uses Juice Shop as an example but isn't a "how-to-solve-it" guide.2526If in doubt, and the content contains spoilers (indicated by `:godmode:` or `:bulb:`), prefer `SOLUTIONS.md` if it is a guide/video/tool. If it is a blog post or talk, prefer `REFERENCES.md` with the appropriate icon.2728## General Workflow29301. **Analyze the Initial Prompt**: Identify the URL(s) and any provided metadata (author, title, tool name).312. **Crawl URL(s)**: Use the `bash` tool with `curl` or `fetch_url` to fetch the content of the provided link(s).32 - Look for: Title, Author, Juice Shop version (🧃), Language code (e.g., `:de:`).333. **Determine Category**:34 - [Hacking Videos](types/video.md)35 - [Walkthroughs](types/walkthrough.md)36 - [Scripts & Tools](types/tool.md)374. **Infer Metadata**:38 - `🧃vX.x`: Look for the version of Juice Shop mentioned in the content. If not found, use the latest major version if the content is recent.39 - `:broken_heart:`: Mark resources that rely on cheating (e.g., using hints or external tools not intended for the challenge).40 - Language code: e.g., `(:de:)`, `(:es:)`, `(:id:)`.415. **Identify Missing Information**: If mandatory information (like the Juice Shop version or author) is missing, ask the user.426. **Find the Correct Section**: Locate the target section in `SOLUTIONS.md`.437. **Format the Entry**: Use the specific formatting rules for the identified type.448. **Update Table of Contents**: If a new top-level section is added (rare), update the TOC.459. **Skip Validation Commands**: Since `SOLUTIONS.md` is a plain text file, running `npm run lint`, `npm test`, or any other validation commands is unnecessary if *only* this file (and/or `REFERENCES.md`) was modified.4647## Common Formatting Rules4849- Use `*` for list items.50- Links are in `[Title](URL)` format.51- Mention authors with "by [Name](Link)".52- The Juice Shop version is mentioned as `(🧃`vX.x`)`.53- For non-English content, add the language code in parentheses, e.g., `(:de:)`, `(:es:)`.54- **Everything** in `SOLUTIONS.md` is considered a spoiler, so individual icons like `:godmode:` are generally not used for the entry itself (unless it's a sub-item in a list that needs distinguishing).