CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

hns-lsel-curator

Local Self-Evolution Loop (LSEL) curator — the CLUSTER + drain engine for the GOOS-local PROPOSE→APPLY seam closure (SPEC-LSEL-LOCAL-EVOLUTION-001). Companion-offset drain of .moai/lessons-inbox.jsonl with a drain-side severity filter that drops the ~65% Bash-timeout/sandbox noise, event_key clustering with a frequency gate, and a Generative-Agents-style 1-10 importance score. Candidates stage at .moai/state/lsel/clusters.json. M1 = drain only (NO PROPOSE, NO APPLY, NO memory/ writes).

Quality

66%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./.claude/skills/hns-lsel-curator/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

56%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The mechanical core is described with strong, executable precision — commands, schemas, validation predicates, and test harnesses are all concrete — and validation checkpoints are unusually thorough. The score is dragged down by changelog/spec-audit narrative woven through the operational text and by a monolithic single-file structure that inlines three later milestone stages instead of splitting them into reference files.

Suggestions

Move milestone history out of the body — the drain-stall archaeology, 'Removed dead anchors' revision note, and Tier-4 finding narrative belong in the SPEC/progress docs or a CHANGELOG file; keep only the operating instruction each one justifies.

Split the M2 PROPOSE, M3 CSA, and M4 REFLECTION stage details into separate reference files (e.g. PROPOSE.md / REFLECTION.md next to the SKILL.md) and keep SKILL.md as an overview with one-level-deep, clearly signaled links — this also removes the second-level chain through spec.md §B.3 by inlining the six evolvable surfaces once.

Replace the non-executable placeholders in the verification block ('<drain-start-timestamp>') with a concrete capture step (e.g. 'touch /tmp/lsel-start && find memory -newer /tmp/lsel-start -name feedback_*').

DimensionReasoningScore

Conciseness

Noticeably verbose with several padded sections: changelog archaeology ('The drain's original "schedule" was a session-scoped /loop recipe that died with its owning session (2026-08-04)'), a 'Removed dead anchors' revision note, a Korean-language quote, and the extended Tier-4 audit narrative. Date-stamped history (2026-08-04, 2026-08-26) appears inline rather than in a deprecated/old-patterns section. Not 1 because the operational core (commands, schemas, pipeline steps) is dense and non-padding; not 3 because multiple full sections serve spec-audit history rather than execution.

2 / 5

Actionability

Mostly executable guidance: exact invocations ('drain.sh --inbox <path> --state-dir <path>', 'session_drain.sh [--inbox <path>] [--state-dir <dir>]'), a complete clusters.json schema, a full verification block with a jq predicate and 'must print: true', and precise wiring instructions ('jq '.hooks.SessionStart' .claude/settings.local.json'). Not 5 because placeholders like '<drain-start-timestamp>' and '<proposal-id>' leave parts not copy-paste ready, and the PROPOSE proposal template is schema-shaped rather than a worked example.

4 / 5

Workflow Clarity

The drain pipeline is a numbered 7-step sequence with explicit validation ('Verification (run before declaring a drain complete)'), characterization tests ('Run it after any edit to drain.sh'), a self-critique gate with RESOLVED/UNRESOLVED convergence rules, and fail-open behavior — so the batch-operation validation cap does not apply. Not 5 because four milestones (M1 drain, M2 PROPOSE, M3 CSA, M4 REFLECTION) are interleaved across sections with heavy cross-referencing to external spec docs, so the reader must assemble the end-to-end operational sequence themselves.

4 / 5

Progressive Disclosure

Sections are clearly headed and referenced scripts are explicitly signaled ('next to this SKILL.md'), but ~390 lines inline M3 CSA detail (nominally the hns-lsel-applier skill's stage) and M4 REFLECTION detail that belong in separate reference files, and key facts are only reachable via second-level references (SKILL.md → spec.md §B.3 for 'the 6 evolvable surfaces'). Additionally, none of the scripts referenced as living next to SKILL.md (drain.sh, session_drain.sh, reflect.sh, the *_test.sh harnesses) are present in this bundle.

3 / 5

Total

13

/

20

Passed

Description

62%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description names genuinely concrete, multi-step capabilities with specific file paths, but it is written as an internal spec summary rather than a trigger-optimized description: heavy internal jargon, no natural user phrasing, and no 'Use when...' clause. Distinctiveness is excellent because the niche is essentially unique.

Suggestions

Add an explicit trigger clause, e.g. 'Use when the lessons inbox needs draining, when LSEL candidates or clusters.json should be produced, or when session-start drain wiring is requested.'

Replace internal spec jargon ('GOOS-local PROPOSE→APPLY seam closure (SPEC-LSEL-LOCAL-EVOLUTION-001)', 'Generative-Agents-style') with plain, user-sayable phrasing and include natural synonyms (e.g. 'lessons inbox', 'failure events', 'learning loop').

Lead with the operational verb phrase (drain + cluster the lessons inbox) and demote the M1/M2 milestone framing to a trailing boundary sentence so the description reads as capabilities, not a status report.

DimensionReasoningScore

Specificity

Lists several concrete actions with real paths — 'Companion-offset drain of .moai/lessons-inbox.jsonl', 'drain-side severity filter that drops the ~65% Bash-timeout/sandbox noise', 'event_key clustering with a frequency gate', 'Generative-Agents-style 1-10 importance score', 'Candidates stage at .moai/state/lsel/clusters.json'. Not 5 because the opening sentence is buzzword-heavy over-claiming ('the CLUSTER + drain engine for the GOOS-local PROPOSE→APPLY seam closure (SPEC-LSEL-LOCAL-EVOLUTION-001)'), which the guidelines penalize.

4 / 5

Completeness

The 'what' is clearly stated (drain, filter, cluster, score, stage at clusters.json) but there is no 'Use when...' clause or any equivalent trigger guidance — the M1 scope note ('M1 = drain only') is a boundary, not a 'when to use this' statement. Per the judging guideline, a missing 'Use when...' clause caps completeness at 3; it is not 4 because 'when' is entirely absent rather than merely implicit.

3 / 5

Trigger Term Quality

Relevant keywords exist ('drain', 'curator', 'lessons-inbox.jsonl', 'clustering') but natural user-sayable variations and synonyms are missing, and much of the phrasing is internal jargon (SPEC IDs, 'GOOS-local', 'Generative-Agents-style') that a user would never say. Above anchor 2 because more than one relevant, domain-recognizable term is present; below anchor 4 because common natural phrasings are absent.

3 / 5

Distinctiveness Conflict Risk

Extremely narrow niche with unique artifact paths and mechanism names ('lessons-inbox.jsonl', 'clusters.json', 'companion offset', 'LSEL') — a clear niche with distinct triggers and minimal conflict risk with any other skill.

5 / 5

Total

15

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

Total

15

/

16

Passed

Repository

modu-ai/moai-adk

Path

.claude/skills/hns-lsel-curator/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.