Inputs
args= $ARGUMENTStask_id= args[0]extra_info= args[1..] (optional)
Preference resolution
- Load
.lissom/settings.local.jsonfrom the project root. It may be absent or empty — treat either as no preferences set. - Load
<skill_dir>/user_preference_questions.jsonfrom this skill's directory. Each entry has apreference_argkey (the preference name). - For each preference, check if it is present in
settings.local.json. If set, use it. - For any preference not found in
settings.local.json:- Inform user: "Preferences can be set in
.lissom/settings.local.json, see README." - If the user answers
user_attention=autoorextra_infodemands auto processing, skip all rest questions and setfix_threshold=critical,spec_review_required=false. - If the user answers
spec_review_required=true, setresearch_required=trueand skip that question. - Use Tool
AskUserQuestionto prompt the user using the entry's question/options. The first option in each question is the default one.
- Inform user: "Preferences can be set in
Preference variables (first options are defaults):
user_attention=default,auto,focusedfix_threshold=warning,critical,suggestionspec_review_required=false,trueresearch_required=true,falseimpl_delegation=single,multiple(do not ask question)
Task Directory Resolution
task_dir=.lissom/tasks/<task_id>or.lissom/tasks/backlog/<task_id>- If neither path exists, search available tools to locate the task, for example a JIRA ID. Then copy the task into
.lissom/tasks/<task_id>/Specs.mdand use.lissom/tasks/<task_id>astask_dir. - If the task still cannot be found, fail.
Task Artifact discovery
- Prefer read files directly or list dir instead of file search. Because file search tools may respect exclusion rules, such as
.gitignore, that hide the artifacts.
Execution
- Invoke
lissom-researchwithtask_dir,user_attention,spec_review_required, andresearch_required. Wait for completion. Ifspec_review_requiredandresearch_requiredare bothfalse, skip this step. - Invoke
lissom-planwithtask_dir. VerifyPlan.mdexists; retry once on missing. - Invoke
lissom-implwithtask_dirandimpl_delegation. VerifyImpl-summary.mdexists; retry once on missing. - Invoke
lissom-reviewwithtask_dir. VerifyReview.mdexists; retry once on missing. - Parse
Review.mdto decide whether to enter the fix loop:
- Search for heading
**Critical**. If found and followed by content before the next heading, critical issues exist. - Search for heading
**Warning**. Same rule. - Search for heading
**Suggestion**. Same rule. - Compare found issues against
fix_threshold:critical→ fix loop only if critical issues exist.warning(default) → fix loop if critical or warning issues exist.suggestion→ fix loop if any issues exist. If no issues at or above threshold → report success to the user.
- Summarize the outcome for the user.
Fix loop
Up to 3 cycles:
- Invoke
lissom-planwithtask_dir,fix_cycle, andfix_threshold. - Invoke
lissom-implwithtask_dir. - Invoke
lissom-reviewwithtask_dir. - Parse
Review.mdthe same way as Execution step 5. If it passes → report success.
After 3 cycles with persistent issues, report failure and direct the user to Review.md.
Rules
- Never write code, plans, or research directly. Delegate all work by invoking the named sub-skills above.
- If a sub-skill escalates a blocking question, use Tool
AskUserQuestionto relay it to the user and pass the answer back. - If a skill is interrupted mid-run, re-invoke it (skills are idempotent).
- Follow user instructions optionally from
extra_info.
Definition of done
- These artifacts exist in
.lissom/tasks/<task_id>/:Research.md,Plan.md,Impl-summary.md,Review.md. Review.mdcontains no issues at or abovefix_threshold, or the fix loop has exhausted 3 cycles.