diff --git a/docs/skills/detective-create/SKILL.md b/docs/skills/detective-create/SKILL.md index 0d16515..482b7f1 100644 --- a/docs/skills/detective-create/SKILL.md +++ b/docs/skills/detective-create/SKILL.md @@ -14,9 +14,9 @@ Create a folder in `~/.hermes/detective/cases//` Each case needs: ``` / -├── case.yaml # Case data +├── case.yaml # Case data (evidence, suspects) ├── truth.enc # Encoded truth -└── images/ # Evidence images +└── images/ # Evidence images ``` ## Case YAML Format @@ -34,11 +34,6 @@ evidence: image: "images/evidence-01.jpg" description: "Brief description" - - id: "evidence-02" - name: "Another Evidence" - image: "images/evidence-02.jpg" - description: "Brief description" - suspects: - id: "suspect-01" name: "Suspect Name" @@ -63,8 +58,12 @@ key_points: encoded = base64.b64encode(truth.encode()).decode() # Write encoded to truth.enc +with open('truth.enc', 'w') as f: + f.write(encoded) ``` +The truth file is loaded AFTER investigation, not during. This keeps the mystery intact. + ## Creating Images Images can be: @@ -80,3 +79,4 @@ Images can be: - Case should be solvable with the evidence provided - Truth should align with evidence (no hidden info) - Include 2-4 evidence items and 2-3 suspects for Easy +- key_points in truth should match what users can discover from evidence diff --git a/docs/skills/detective-play/SKILL.md b/docs/skills/detective-play/SKILL.md index ff2e675..cd924c1 100644 --- a/docs/skills/detective-play/SKILL.md +++ b/docs/skills/detective-play/SKILL.md @@ -15,8 +15,8 @@ All cases are stored in: ``` Each case is a folder containing: -- `case.yaml` — Evidence, suspects, briefing (NO truth) -- `truth.enc` — Encoded solution +- `case.yaml` — Evidence, suspects, briefing +- `truth.enc` — Encoded solution (DO NOT READ DURING INVESTIGATION) - `images/` — Evidence images ## How to Play @@ -31,11 +31,23 @@ Each case is a folder containing: 8. Help theorize based on evidence 9. When user is ready, help them build and submit their theory -## When User Asks About Truth +## Investigation Phase (DO NOT Reveal Truth) -Only reveal truth AFTER user has formed and submitted their theory. +During investigation: +- Help the user examine evidence +- Use Kimi Vision to describe what it sees in images +- Help theorize about suspects +- DO NOT load or read truth.enc +- The truth should only be revealed at the end + +## When User Asks for Truth + +After the user has investigated and wants to see the truth: + +1. Run the decode command +2. Show the decoded truth +3. Show statistics -To decode truth: ```python import base64 with open('truth.enc', 'r') as f: @@ -44,9 +56,33 @@ decoded = base64.b64decode(encoded.encode()).decode() print(decoded) ``` -## Important +Show the decoded truth to the user. -- NEVER read truth.enc before the user is done investigating +## After Truth Reveal - Show Statistics + +Calculate and show these statistics: + +``` +INVESTIGATION COMPLETE +━━━━━━━━━━━━━━━━━━━━━ +Turns: [count of actions taken] +Time estimate: [turns] × 10 minutes + +EVIDENCE EXPLORED: [X/Y items examined] + +KEY POINTS CHECKLIST: +- [ ] Point 1 from truth +- [ ] Point 2 from truth +- [ ] Point 3 from truth + +ALIGNMENT: [X% based on key points matched] +RATING: [based on alignment] +``` + +## Important Rules + +- NEVER read truth.enc during investigation +- Only decode and reveal truth when user asks - Case format: case.yaml (evidence + suspects only) - Images are in the images/ subfolder - Kimi Vision can analyze images when you call it