Port the sssf skill from ~/.agents/skills/sssf into this repo so it can be distributed and installed with the skills CLI (skills add INDigitalStudio/skills --skill sssf). - Copy the skill (SKILL.md, cookbooks, references, scripts, templates, and the visualizer app source) into sssf/. - Gitignore build/runtime artifacts: the visualizer's node_modules/ and dist/, Python bytecode, and the machine-specific repos.json. - Make the skill location-independent: install.py now stamps the skill's real path into the stamped justfile's skill_dir (replacing the hardcoded ~/.agents/skills/sssf), so 'just obs' finds the visualizer wherever the CLI installed the skill. - Update cookbooks to use <skill>/scripts/... instead of the hardcoded path, and document the skills CLI install command. - Update the repo README with install instructions.
1.3 KiB
1.3 KiB
Review Task
Variables
prompt
{{prompt}}
previous_envelope
{{previous_envelope}}
context_handoff_dir
{{context_handoff_dir}}
Task
Confirm that the work reported in previous_envelope is what was asked for.
- Establish the spec: read
<context_handoff_dir>/plan.mdif it exists, else useprompt. - Read the code that was actually written, starting from
previous_envelope.changed_files. - Rule on every requirement in the spec — one
findingsentry each, with evidence. - Write the review to
<context_handoff_dir>/review.md, then emit yourReportJSON.
Report
Respond with ONLY valid JSON matching ReviewOutput — no prose before or after:
{
"status": "success",
"approved": false,
"summary": "<one sentence: N of M requirements met>",
"findings": [
{ "requirement": "<the ask, in the requester's words>", "met": true, "evidence": "src/server.ts:42 — handler registered" }
],
"blocking": ["<what must change before this can be approved>"],
"artifacts": ["<context_handoff_dir>/review.md"],
"notes_for_next_agent": "<what the builder must fix, or how to verify if approved>"
}
status is success when the review itself completed — it is not the verdict. The verdict is approved, and it is true only when findings has no unmet entry and blocking is empty.