CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

hns-lsel-applier

Local Self-Evolution Loop (LSEL) APPLY engine — the playback-only consumer of approved decision.json records that drives `.moai/hooks/lsel-apply.sh` for the GOOS-local PROPOSE→APPLY seam closure (SPEC-LSEL-LOCAL-EVOLUTION-001 M3). Reads an approved decision.json, validates the target against the frozen allowlist (.claude/lsel/frozen-allowlist.json), mechanically refuses execution-meta targets lacking a synchronous-approval marker, applies the referenced diff.patch, appends an apply-ledger.jsonl row, and commits one lsel-<proposal-id>-tagged Conventional Commit on the feature branch. M3 scope: APPLY bypass closure only (the frozen Go applier stays frozen — its write-flag at internal/harness/applier.go:22 stays false; REQ-LSEL-003).

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

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

Quality

Content

73%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 body is an unusually rigorous operational spec: concrete commands, refusal semantics, ledger schemas, validation gates, and feedback loops leave little ambiguity about what to execute or when to refuse. Its weaknesses are padding — dead-seam history, a Korean SSOT quotation, and token-discipline meta-commentary — and the absence of any example payloads (decision.json, synchronous_approval) that would make the model-mediated checks copy-paste verifiable.

Suggestions

Move the design-history context (the dead-in-production findings, the Korean SSOT quote, the two-round critique summary) into a short Background reference file or compress to one line each; the executing model only needs the invariants, not the rationale trail.

Add a minimal example decision.json and its synchronous_approval object so the marker-provenance and execution-meta checks can be verified against a concrete shape rather than prose descriptions.

Consider splitting the M4 VERIFY stage (verify.sh policy + /moai gate superset, ~50 lines) into a VERIFY.md reference — it is a distinct stage and its detail competes with the APPLY-pipeline core in the main body.

DimensionReasoningScore

Conciseness

The pipeline mechanics are repo-specific and legitimately unknown to Claude, but the body pads with historical justification ("was dead in production: `Applier.Apply` never ran... `CuratorDispatch` had 0 production callers"), a Korean design-report quotation, and a meta "Token discipline" paragraph — mostly efficient but could be tightened.

3 / 5

Actionability

Concrete throughout — `lsel-apply.sh <decision.json>` with exit codes 2/3, the ledger row schema, `verify.sh --proposal-dir <p> --repo-root <r> [--timeout SECS] [--feedback-file <f>]`, the commit message format, and runnable verification commands (`sed -n '22p' internal/harness/applier.go`, grep/tail) — but minor gaps remain, e.g. no example decision.json or synchronous_approval object.

4 / 5

Workflow Clarity

The five-step pipeline is clearly sequenced with hard-refusal checkpoints (exit 2/3, no write), the model-mediated layer adds explicit validations (blocked-status check, marker-provenance check, write-flag re-verify), and VERIFY has a 2-attempt policy, auto-revert, a mandatory `/moai gate` superset, and blocker-report feedback loops — explicit validation with error-recovery loops throughout.

5 / 5

Progressive Disclosure

No bundle files exist, so all content lives in a ~200-line SKILL.md, but it is well-sectioned and every external pointer (spec, design report, characterization tests, hook, curator skill) is clearly signaled and one level deep in a Cross-references section; the inlined M4 VERIFY stage is the main content that arguably belongs in a separate reference file.

4 / 5

Total

16

/

20

Passed

Description

67%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 is exceptionally specific about what the skill does and clearly distinguishable from sibling skills, but it is written almost entirely in internal spec jargon and omits any explicit "when to use this" trigger guidance. Adding a "Use when..." clause with natural trigger phrases would lift both completeness and trigger-term quality.

Suggestions

Add an explicit trigger clause, e.g. "Use when an approved LSEL decision.json is queued for apply, or when the user asks to apply/commit an LSEL proposal" — its absence currently caps completeness at 3.

Replace some spec identifiers (SPEC-LSEL-LOCAL-EVOLUTION-001 M3, REQ-LSEL-003) with natural phrasing users would actually say ("apply an approved self-evolution proposal", "playback an approved diff"), keeping the deep references in the body instead.

Trim the parenthetical M3-scope detail about the frozen Go applier's write-flag line number; it duplicates body content and inflates the description without adding trigger value.

DimensionReasoningScore

Specificity

"Reads an approved decision.json, validates the target against the frozen allowlist (.claude/lsel/frozen-allowlist.json), mechanically refuses execution-meta targets lacking a synchronous-approval marker, applies the referenced diff.patch, appends an apply-ledger.jsonl row, and commits one lsel-<proposal-id>-tagged Conventional Commit" lists multiple specific concrete actions covering the full pipeline in third-person voice, matching the comprehensive-coverage anchor.

5 / 5

Completeness

The "what" is explicit and detailed, but there is no "Use when..." clause or equivalent explicit trigger guidance — the "when" is only weakly implied by "playback-only consumer of approved decision.json records", which caps completeness at 3 per the rubric guideline.

3 / 5

Trigger Term Quality

The description leans on project-internal jargon ("SPEC-LSEL-LOCAL-EVOLUTION-001 M3", "execution-meta", "synchronous-approval marker", "REQ-LSEL-003") with only a few natural terms ("apply", "commit", "diff.patch"), so it has some relevant keywords but is missing the common variations and natural phrases users would say.

3 / 5

Distinctiveness Conflict Risk

Highly niche identifiers (LSEL APPLY engine, frozen-allowlist path, apply-ledger.jsonl, lsel-<proposal-id> commits) give it a clear niche with distinct triggers, and the PROPOSE-stage curator sibling is explicitly scoped out, so conflict risk is minimal.

5 / 5

Total

16

/

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-applier/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.