| name | add-solution |
| description | Instructions for adding new hacking guides, videos, or tools to SOLUTIONS.md |
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:
- 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).