skill-creator
Audited by Runlayer on Mar 10, 2026
Tool passed security scan
Risky tool definition detected
Description: != "none": if args.report == "auto": timestamp = time.strftime("%Y%m%d_%H%M%S") live_report_path = Path(tempfile.gettempdir()) / f"skill_description_report_{skill_path.name}_{timestamp}.html" else: live_report_path = Path(args.report) # Open the report immediately so the user can watch live_report_path.write_text("<html><body><h1>Starting optimization loop...</h1><meta http-equiv='refresh' content='5'></body></html>") webbrowser.open(str(live_report_path)) else: live_report_path = N
Tool passed security scan
Risky tool definition detected
``` For iteration 2+, also pass `--previous-workspace <workspace>/iteration-<N-1>`. **Cowork / headless environments:** If `webbrowser.open()` is not available or the environment has no display, use `--static <output_path>` to write a standalone HTML file instead of starting a server. Feedback will be downloaded as a `feedback.json` file when the user clicks "Submit All Reviews". After download, copy `feedback.json` into the workspace directory for the next iteration to pick up.
If you're in Cowork, please specifically put "Create evals JSON and run `eval-viewer/generate_review.py` so human can review test cases" in your TodoList to make sure it happens.
Risky tool definition detected
Tool: skill-creator/eval-viewer/generate_review.py [2/2] Description: None: if self.path == "/" or self.path == "/index.html": # Regenerate HTML on each request (re-scans workspace for new outputs) runs = find_runs(self.workspace) benchmark = None if self.benchmark_path and self.benchmark_path.exists(): try: benchmark = json.loads(self.benchmark_path.read_text()) except (json.JSONDecodeError, OSError): pass html = generate_html(runs, self.skill_name, self.previous, benchmark) content = html.enco
Tool passed security scan
Risky tool definition detected
') # Add result for each test query (with different background) for qinfo in test_queries: r = test_by_query.get(qinfo["query"], {}) did_pass = r.get("pass", False) triggers = r.get("triggers", 0) runs = r.get("runs", 0) icon = "✓" if did_pass else "✗" css_class = "pass" if did_pass else "fail" html_parts.append(f' <td class="result test-result {css_class}">{icon}<span class="rate">{triggers}/{runs}</span></td> ') html_parts.append(" </tr> ") html_parts.append(""" </tbody> </table> </div> """) h
Tool passed security scan
Tool passed security scan
Tool passed security scan
Tool passed security scan
Passed Files (13)Click to expand
Tool passed security scan
Tool passed security scan
Tool passed security scan
Tool passed security scan
Tool passed security scan
Tool passed security scan
Tool passed security scan
Tool passed security scan
Tool passed security scan
Tool passed security scan
Tool passed security scan
Tool passed security scan
Tool passed security scan