diff --git a/.graphlemon/runs/7fc3a7a3-ebe3-48ae-97de-a98f7f3c9d35/sdd.md b/.graphlemon/runs/7fc3a7a3-ebe3-48ae-97de-a98f7f3c9d35/sdd.md new file mode 100644 index 0000000..150c2ee --- /dev/null +++ b/.graphlemon/runs/7fc3a7a3-ebe3-48ae-97de-a98f7f3c9d35/sdd.md @@ -0,0 +1,8 @@ +The planner workflow (graphlemon Work Node) completed. It took the approved PRD ("修复 /#/skills 页面点击某个 skill 后不显示真实内容的 bug") and produced a full SDD for a single Development Unit: + +- Root cause: `src/skill_query.py` only reads DB tables (`skill`, `skill_iteration`); nothing reads the real `skills//SKILL.md` files on disk that a recent migration created. +- Fix scope: add `get_skill_content()` to `skill_query.py` (with `SkillContentMissingError` and two-layer path-traversal protection reusing `skill_update._skill_file_path()`), a new `GET /api/skills/:skill_id/content` endpoint in `backend_server.py`, and a new "Skill 内容" panel in `frontend/app.js`'s skill audit page — plain `
` text, no Markdown/highlighting deps.
+- Tests: 7 new cases across `test_skill_query.py` and `test_backend_server.py`, including two path-traversal sub-cases; full `python3 -m unittest discover -s src` suite must stay green.
+- Explicitly out of scope: no changes to `skill_update.py`, no schema/migration changes, no single-file preview of support files.
+
+This SDD artifact is ready to hand off to the Coder node for implementation. No further action was taken since this is the planner-stage deliverable.
\ No newline at end of file