Skip to content
Back to skills

Ln 161 Skill Creator

BSecurity

Creates .pi/skills from procedural doc sections with proper structure and transformation

  • 17 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 10, 2026
documentationgoshellbashdocumentation

Security analysis

B75/100
  • criticalPipes output to a shell interpreter

Pro scans all 2 files and shows the line behind each finding

Scanned September 10, 2026

npx -y skills add tensology/decisionsai --skill ln-161-skill-creator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ln 161 Skill Creator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ln 161 Skill Creator
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/tensology-ln-161-skill-creator/badge)](https://www.skillsdirectory.com/skills/tensology-ln-161-skill-creator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ln-161-skill-creator
description: "Creates .pi/skills from procedural doc sections with proper structure and transformation"
license: MIT
---

> **Paths:** File paths (`shared/`, `references/`, `../ln-*`) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.

# ln-161-skill-creator

**Type:** L3 Worker (standalone-capable)
**Category:** 1XX Documentation Pipeline
**Coordinator:** ln-160-docs-skill-extractor (optional)

Creates skill files from procedural documentation sections. Transforms declarative prose into imperative executable instructions.

---

## Overview

| Aspect | Details |
|--------|---------|
| **Input** | Procedural doc sections (from ln-160 contextStore or standalone scan) |
| **Output** | `.pi/skills/*.md` files in target project |
| **Template** | `references/command_template.md` |

---

## Input Modes

| Mode | Trigger | Behavior |
|------|---------|----------|
| **Worker** | Invoked by ln-160 with contextStore | Use provided sections directly |
| **Standalone** | Invoked directly with `$ARGUMENTS` | Self-discover + classify docs |

### Standalone Discovery

When invoked directly (not via ln-160):
1. If `$ARGUMENTS` = file paths -> read those docs, extract procedural sections
2. If `$ARGUMENTS` = "all" or empty -> scan `docs/` recursively
3. Classify sections using same rules as ln-160 Phase 2

**MANDATORY READ:** Load `../ln-160-docs-skill-extractor/references/classification_rules.md` (standalone mode only)

4. Present extraction plan to user via AskUserQuestion
5. Create approved commands
6. Recommend user to run ln-162-skill-reviewer for quality review

---

## Workflow (Worker Mode)

### Phase 1: Prepare

Receive contextStore with approved procedural sections:
```yaml
approved_sections:
  - source_file: docs/project/runbook.md
    section_header: "Deployment"
    line_range: [45, 92]
    command_name: deploy.md
  - source_file: tests/README.md
    section_header: "Running Tests"
    line_range: [15, 48]
    command_name: run-tests.md
```

**MANDATORY READ:** Load `references/command_template.md`

### Phase 2: Transform and Create

For each approved section:

1. **Read source** -- extract section content from source file at specified line range

2. **Detect allowed-tools** -- infer from content:

| Content Pattern | Tool |
|----------------|------|
| bash/sh code blocks, shell commands | Bash |
| File read/load references | Read |
| File modify/update instructions | Edit |
| Search/find in files | Grep, Glob |
| Skill invocations | Skill |
| User confirmation steps | AskUserQuestion |

3. **Transform content** using rules below

4. **Write file** to `.pi/skills/{command_name}`

### Transformation Rules

| Rule | From | To |
|------|------|----|
| Voice | Declarative ("The system uses X") | Imperative ("Run X") |
| Code blocks | Preserve as-is | Keep unchanged |
| Numbered lists | Description-style | Ordered workflow steps with ### headers |
| Verification | Implicit ("should work") | Explicit verification commands |
| Doc metadata | SCOPE tags, Maintenance sections | Remove |
| Troubleshooting | Prose | Table format (Issue / Solution) |
| Prerequisites | Mentioned inline | Dedicated Prerequisites table |
| Related docs | Inline references | Related Documentation section with relative links |

### Phase 3: Report

Return to coordinator (or display to user in standalone mode):

```yaml
created:
  - file: .pi/skills/deploy.md
    source: docs/project/runbook.md#Deployment
    lines: 85
    tools: [Bash, Read]
  - file: .pi/skills/run-tests.md
    source: tests/README.md#Running Tests
    lines: 62
    tools: [Bash]
summary: "Created 2 commands from 2 procedural sections"
```

---

## Critical Rules

- **Template-driven:** All output follows `references/command_template.md` structure
- **Preserve source:** Never modify or delete source documentation files
- **No invention:** Only extract content that exists in source docs. Do NOT add commands, steps, or paths not found in the original
- **Imperative voice:** Every instruction must be actionable -- no passive descriptions
- **Relative paths:** All file references in created commands use paths relative to project root
- **Idempotent:** If command file already exists, skip (do not overwrite)

---

## Definition of Done

- [ ] Source sections read at specified line ranges
- [ ] Allowed-tools detected per content patterns
- [ ] Content transformed to imperative voice (all transformation rules applied)
- [ ] Files written to `.pi/skills/{command_name}`
- [ ] Existing command files not overwritten (idempotent)
- [ ] Report returned with created file list and summary

---

**Version:** 1.0.0
**Last Updated:** 2026-03-13

Files in this skill

  • SKILL.md4.6 KB
  • references/command_template.md2.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.