Skills
{#if !loading} {skills.length} {/if} {#if checkedCount > 0} {checkedCount} {externalMode ? 'selected' : 'queued'} {/if}
{#if !externalMode}

Check skills to inject with your next message.

{/if} {#if loading}
Loading skills...
{:else if error}
{error}
{:else if skills.length === 0}

No skills found. Create .skills/ directories to get started.

{:else}
{#each dirGroups as group, idx (dirKey(group))} {@const collapsed = collapsedDirs.has(dirKey(group))} {@const hidden = isHiddenByParent(group)} {@const prevGroup = dirGroups[idx - 1]} {@const isNewTopLevel = idx === 0 || !prevGroup || topLevelDir(group) !== topLevelDir(prevGroup) || group.scope !== prevGroup.scope} {#if !hidden} {#if isNewTopLevel && idx > 0}
{/if}
{#if !collapsed}
{#each group.skills as skill (skillKey(skill))} {@const key = skillKey(skill)} {@const checked = isChecked(skill)} {@const injected = isInjected(skill)}
{#if expandedSkill === key}
{#if loadingDetail} {:else if expandedDetail}
{expandedDetail.content}
{:else}

Failed to load skill content.

{/if}
{/if}
{/each}
{/if}
{/if} {/each}
{/if} {#if !externalMode} {/if}