ソース情報
- リポジトリ
- CodySwannGT/lisa
- ソースの最終更新活動
- 2026年8月16日 02:27
- 検出された SKILL.md の言語
- 英語
- スター
- 3
- フォーク
- 3
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/CodySwannGT/lisa --skill lisa-health-drift-cronコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
This skill should be used for any non-trivial request — features, bugs, stories, epics, spikes, or multi-step tasks. It accepts a ticket URL (Jira, Linear, GitHub), a file path containing a spec, or a plain-text prompt. It assembles an agent team, breaks the work into structured tasks, and manages the full lifecycle from research through implementation, code review, deploy, and empirical verification.
any non-trivial request —…
This skill should be used for any non-trivial request — features, bugs, stories, epics, spikes, or multi-step tasks. It accepts a ticket URL (Jira, Linear, GitHub), a file path containing a spec, or a plain-text prompt. It assembles an agent team, breaks the work into structured tasks, and manages the full lifecycle from research through implementation, code review, deploy, and empirical verification.
SKILL.md を表示中
| name | lisa-health-drift-cron |
| description | Scheduled health consumer |
| allowed-tools | ["Skill","Bash","Read"] |
Consumer #3 of the health layer: the cron. A health check you have to remember to run is a health check that goes stale, so this one runs on a schedule and turns drift into tracked work rather than silent decay.
It files. It never closes, edits, or repairs. Disposal belongs to humans and the Implement factory.
A nightly cron that refiles the same drift every night is worse than no cron at all, because it teaches everyone to ignore the tickets it files. Every rule below exists to make "the same drift" a decidable question, and the decision is not made in this prose — it is made by planDriftTickets in src/health/drift-tickets.ts, which is unit-tested against each of these cases.
Do not reimplement the dedupe here. Call the planner and act on its answer. A second implementation in prose is a second implementation to drift.
Invoke /lisa-health and use the JSON it emits. Do not call the CLI directly and do not invent flags for it: lisa health takes [path], --prepare-agentic, and --agentic-evaluation, and nothing else. There is no --json — the persisted result IS the command's stdout, and an unknown option makes commander exit non-zero, so a guessed flag turns the first phase of a scheduled run into a failure nobody is watching.
Routing through the skill also means the bounded harness-review step and its cleanup stay in one place rather than being re-described here and drifting.
Do not reconstruct, merge, or summarize findings; the result is passed to Phase 3 verbatim.
If the run itself fails, that is a recovery-required outcome. Report it and stop. Do not file a drift ticket about a health check that did not complete — a run that could not measure has not found drift, and saying otherwise is the same defect the health layer exists to catch.
Fetch the tracker's open items carrying the drift marker prefix lisa-health-drift.
Open only, and this is load-bearing. A closed ticket must not suppress live drift: if it did, closing a ticket without fixing anything would make that drift invisible forever, which is exactly the silent decay this consumer exists to prevent. Suppression should be a configured declaration visible in a diff — turn the check off in config — not a side effect of somebody tidying a backlog.
The planner enforces this by construction: it accepts an openTickets list and has no notion of a closed one. Passing closed tickets defeats the design, and the parameter is named to say so.
Feed the findings and the open tickets to planDriftTickets. It returns:
file — one entry per drifting check with no open ticket, carrying title, body, and markeralreadyTracked — drift that an open ticket already covers, with the ticket idEvery unique drifting check lands in exactly one of the two after duplicate findings for the same check are collapsed, so a run reporting "nothing to do" is asserting it looked at all of them.
The collapse is not tidiness. The marker cannot tell two findings for one check apart, so filing both would self-duplicate on the very FIRST run — before any second run exists to blame. file.length + alreadyTracked.length therefore counts distinct drifting checks, which is fewer than the drifting findings whenever a run reports one check twice.
Dedupe is per check, not per drift set. Fingerprinting the whole finding set would mean one added finding produces a fresh ticket while the old one still stands, so a slowly-degrading project accumulates near-duplicates — the same "worse than no cron" outcome by another route.
For each entry in file, invoke /lisa-tracker-write with its title and body. Never call a vendor writer (lisa-github-write-issue / lisa-jira-write-ticket / lisa-linear-write-issue) directly — routing through the shim is what makes the tracker switchable per project.
The body already contains the marker. Do not strip it, and do not add a second one: the next run finds the ticket by that exact string.
Per the automation runbook contract, end with exactly one outcome and a one-line operator-readable summary:
no-change — in band, nothing filed. versus no-change — 2 drifting checks, both already tracked (#41, #42).change-proved — filed 1 drift ticket: coverage-floor (#57).The distinction between the two no-change shapes matters. "Nothing filed" and "nothing wrong" are different facts, and collapsing them hides a project whose drift is real and simply already on somebody's list.
Registered as lisa-auto-<project>-health-drift when health.schedule is set to daily or weekly in .lisa.config.json. off (the default) registers nothing. Torn down with the rest of the lisa-auto-<project>-* set.
Register at most one per project.
It guarantees convergence, not mutual exclusion, and the difference is worth stating plainly rather than leaving to be discovered.
Two runs that overlap — a manual invocation alongside the scheduled one, or a run still going when the next fires — can both read an empty open-ticket set and both file for the same check. A single registration makes that rare; it does not make it impossible, and no amount of care in this document would.
What the design does guarantee is that it stops there. The next run sees both open tickets carrying the marker, matches, and files nothing further, so duplicates do not compound. The transient duplicate persists until a human closes one, and closing it is safe: if the drift is still live, the remaining ticket still tracks it.
This is the same stance lisa-learnings-audit takes for the same reason, and the same advice applies — a manual run should first confirm the cron is not due or running. A project-scoped lease would buy true exclusion at the cost of a lock to acquire, hold, and expire correctly on a path that only runs daily; the failure it prevents is cosmetic and self-limiting, and the failure a stuck lease causes is a health check that silently stops running.