claude-skill-lord 2.0.7 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.releaserc.json +2 -2
- package/CLAUDE.md +4 -4
- package/LICENSE +0 -12
- package/README.md +4 -15
- package/agents/copywriter.md +1 -1
- package/commands/claw.md +1 -1
- package/commands/e2e.md +1 -1
- package/commands/harness-audit.md +1 -1
- package/commands/loop-start.md +1 -1
- package/commands/orchestrate.md +1 -1
- package/commands/prompt-optimize.md +4 -4
- package/commands/quality-gate.md +2 -2
- package/commands/skill-create.md +0 -1
- package/commands/skill-health.md +6 -6
- package/commands/tdd.md +2 -2
- package/docs/ARCHITECTURE.md +3 -11
- package/docs/COMMAND-REFERENCE.md +1 -1
- package/docs/SKILL-CATALOG.md +1 -1
- package/docs/code-standards.md +3 -3
- package/hooks/discord-hook-setup.md +2 -2
- package/hooks/scripts/quality-gate.js +2 -2
- package/hooks/scripts/run-with-flags.js +1 -1
- package/hooks/scripts/session-end.js +2 -2
- package/hooks/telegram-hook-setup.md +5 -5
- package/package.json +1 -1
- package/scripts/install.js +9 -20
- package/scripts/lib/hook-flags.js +4 -4
- package/scripts/lib/profile-utils.js +4 -5
- package/scripts/sl.js +8 -13
- package/skills/SKILL.md +0 -1
- package/skills/agent-eval/SKILL.md +0 -1
- package/skills/agent-harness-construction/SKILL.md +0 -1
- package/skills/agentic-engineering/SKILL.md +0 -1
- package/skills/agents/observer-loop.sh +7 -7
- package/skills/ai-first-engineering/SKILL.md +0 -1
- package/skills/ai-regression-testing/SKILL.md +0 -1
- package/skills/android-clean-architecture/SKILL.md +0 -1
- package/skills/api-design/SKILL.md +0 -1
- package/skills/architecture-decision-records/SKILL.md +0 -1
- package/skills/article-writing/SKILL.md +0 -1
- package/skills/autonomous-loops/SKILL.md +4 -5
- package/skills/backend-patterns/SKILL.md +0 -1
- package/skills/blueprint/SKILL.md +5 -6
- package/skills/brand/scripts/sync-brand-to-tokens.cjs +1 -1
- package/skills/bun-runtime/SKILL.md +0 -1
- package/skills/carrier-relationship-management/SKILL.md +0 -1
- package/skills/claude-api/SKILL.md +0 -1
- package/skills/claude-devfleet/SKILL.md +0 -1
- package/skills/click-path-audit/SKILL.md +0 -1
- package/skills/clickhouse-io/SKILL.md +0 -1
- package/skills/codebase-onboarding/SKILL.md +0 -1
- package/skills/coding-standards/SKILL.md +0 -1
- package/skills/compose-multiplatform-patterns/SKILL.md +0 -1
- package/skills/{configure-ecc → configure-skilllord}/SKILL.md +21 -22
- package/skills/content-engine/SKILL.md +0 -1
- package/skills/content-hash-cache-pattern/SKILL.md +0 -1
- package/skills/context-budget/SKILL.md +0 -1
- package/skills/continuous-agent-loop/SKILL.md +0 -1
- package/skills/continuous-learning/SKILL.md +0 -1
- package/skills/continuous-learning-v2/SKILL.md +1 -2
- package/skills/continuous-learning-v2/agents/observer-loop.sh +7 -7
- package/skills/continuous-learning-v2/hooks/observe.sh +11 -11
- package/skills/cost-aware-llm-pipeline/SKILL.md +0 -1
- package/skills/cpp-coding-standards/SKILL.md +0 -1
- package/skills/cpp-testing/SKILL.md +0 -1
- package/skills/crosspost/SKILL.md +0 -1
- package/skills/customs-trade-compliance/SKILL.md +0 -1
- package/skills/data-scraper-agent/SKILL.md +0 -1
- package/skills/database-migrations/SKILL.md +0 -1
- package/skills/deep-research/SKILL.md +0 -1
- package/skills/deployment-patterns/SKILL.md +0 -1
- package/skills/design-system/SKILL.md +1 -1
- package/skills/design-system/scripts/generate-slide.py +9 -9
- package/skills/django-patterns/SKILL.md +0 -1
- package/skills/django-security/SKILL.md +0 -1
- package/skills/django-tdd/SKILL.md +0 -1
- package/skills/django-verification/SKILL.md +0 -1
- package/skills/dmux-workflows/SKILL.md +2 -3
- package/skills/docker-patterns/SKILL.md +0 -1
- package/skills/docs-seeker/package.json +1 -1
- package/skills/documentation-lookup/SKILL.md +0 -1
- package/skills/e2e-testing/SKILL.md +0 -1
- package/skills/energy-procurement/SKILL.md +0 -1
- package/skills/enterprise-agent-ops/SKILL.md +0 -1
- package/skills/eval-harness/SKILL.md +0 -1
- package/skills/exa-search/SKILL.md +0 -1
- package/skills/fal-ai-media/SKILL.md +0 -1
- package/skills/flutter-dart-code-review/SKILL.md +0 -1
- package/skills/frontend-patterns/SKILL.md +0 -1
- package/skills/frontend-slides/SKILL.md +1 -2
- package/skills/golang-patterns/SKILL.md +0 -1
- package/skills/golang-testing/SKILL.md +0 -1
- package/skills/hooks/observe.sh +11 -11
- package/skills/inventory-demand-planning/SKILL.md +0 -1
- package/skills/investor-materials/SKILL.md +0 -1
- package/skills/investor-outreach/SKILL.md +0 -1
- package/skills/iterative-retrieval/SKILL.md +1 -2
- package/skills/java-coding-standards/SKILL.md +0 -1
- package/skills/jpa-patterns/SKILL.md +0 -1
- package/skills/kotlin-coroutines-flows/SKILL.md +0 -1
- package/skills/kotlin-exposed-patterns/SKILL.md +0 -1
- package/skills/kotlin-ktor-patterns/SKILL.md +0 -1
- package/skills/kotlin-patterns/SKILL.md +0 -1
- package/skills/kotlin-testing/SKILL.md +0 -1
- package/skills/laravel-patterns/SKILL.md +0 -1
- package/skills/laravel-security/SKILL.md +0 -1
- package/skills/laravel-tdd/SKILL.md +0 -1
- package/skills/laravel-verification/SKILL.md +0 -1
- package/skills/logistics-exception-management/SKILL.md +0 -1
- package/skills/manifest.json +4 -4
- package/skills/market-research/SKILL.md +0 -1
- package/skills/mcp-server-patterns/SKILL.md +0 -1
- package/skills/nanoclaw-repl/SKILL.md +1 -2
- package/skills/nextjs-turbopack/SKILL.md +0 -1
- package/skills/nutrient-document-processing/SKILL.md +0 -1
- package/skills/nuxt4-patterns/SKILL.md +0 -1
- package/skills/perl-patterns/SKILL.md +0 -1
- package/skills/perl-security/SKILL.md +0 -1
- package/skills/perl-testing/SKILL.md +0 -1
- package/skills/plankton-code-quality/SKILL.md +12 -13
- package/skills/postgres-patterns/SKILL.md +0 -1
- package/skills/production-scheduling/SKILL.md +0 -1
- package/skills/project-guidelines-example/SKILL.md +0 -1
- package/skills/prompt-optimizer/SKILL.md +11 -12
- package/skills/python-patterns/SKILL.md +0 -1
- package/skills/python-testing/SKILL.md +0 -1
- package/skills/pytorch-patterns/SKILL.md +0 -1
- package/skills/quality-nonconformance/SKILL.md +0 -1
- package/skills/ralphinho-rfc-pipeline/SKILL.md +0 -1
- package/skills/regex-vs-llm-structured-text/SKILL.md +0 -1
- package/skills/returns-reverse-logistics/SKILL.md +0 -1
- package/skills/rules-distill/SKILL.md +0 -1
- package/skills/rust-patterns/SKILL.md +0 -1
- package/skills/rust-testing/SKILL.md +0 -1
- package/skills/santa-method/SKILL.md +0 -1
- package/skills/search-first/SKILL.md +0 -1
- package/skills/security-review/SKILL.md +0 -1
- package/skills/security-scan/SKILL.md +0 -1
- package/skills/skill-comply/SKILL.md +0 -1
- package/skills/skill-stocktake/SKILL.md +1 -1
- package/skills/springboot-patterns/SKILL.md +0 -1
- package/skills/springboot-security/SKILL.md +0 -1
- package/skills/springboot-tdd/SKILL.md +0 -1
- package/skills/springboot-verification/SKILL.md +0 -1
- package/skills/strategic-compact/SKILL.md +0 -1
- package/skills/swift-actor-persistence/SKILL.md +0 -1
- package/skills/swift-protocol-di-testing/SKILL.md +0 -1
- package/skills/tdd-workflow/SKILL.md +0 -1
- package/skills/team-builder/SKILL.md +0 -1
- package/skills/verification-loop/SKILL.md +0 -1
- package/skills/video-editing/SKILL.md +0 -1
- package/skills/videodb/SKILL.md +0 -1
- package/skills/x-api/SKILL.md +0 -1
- package/manifests/install-profiles.json +0 -14
package/.releaserc.json
CHANGED
package/CLAUDE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SkillLord — Claude Code Plugin
|
|
2
2
|
|
|
3
|
-
Curated
|
|
3
|
+
Curated Claude Code plugin with intelligent skill routing, structured agents, and production workflows.
|
|
4
4
|
|
|
5
5
|
## Workflows
|
|
6
6
|
|
|
@@ -98,7 +98,7 @@ All skills live in `./skills/<name>/SKILL.md` — flat structure, no tiers.
|
|
|
98
98
|
| /verify | Verify implementation |
|
|
99
99
|
| /quality-gate | Run quality validation |
|
|
100
100
|
|
|
101
|
-
### Multi-Agent Commands
|
|
101
|
+
### Multi-Agent Commands
|
|
102
102
|
| Command | Description |
|
|
103
103
|
|---------|-------------|
|
|
104
104
|
| /multi-plan | Multi-agent planning |
|
|
@@ -108,7 +108,7 @@ All skills live in `./skills/<name>/SKILL.md` — flat structure, no tiers.
|
|
|
108
108
|
| /multi-execute | Multi-agent execution |
|
|
109
109
|
| /orchestrate | Agent orchestration |
|
|
110
110
|
|
|
111
|
-
### Session Management
|
|
111
|
+
### Session Management
|
|
112
112
|
| Command | Description |
|
|
113
113
|
|---------|-------------|
|
|
114
114
|
| /save-session | Save current session |
|
|
@@ -116,7 +116,7 @@ All skills live in `./skills/<name>/SKILL.md` — flat structure, no tiers.
|
|
|
116
116
|
| /sessions | List sessions |
|
|
117
117
|
| /checkpoint | Create checkpoint |
|
|
118
118
|
|
|
119
|
-
### Language-Specific Commands
|
|
119
|
+
### Language-Specific Commands
|
|
120
120
|
| Command | Description |
|
|
121
121
|
|---------|-------------|
|
|
122
122
|
| /cpp-build, /cpp-review, /cpp-test | C++ workflows |
|
package/LICENSE
CHANGED
|
@@ -2,18 +2,6 @@ MIT License
|
|
|
2
2
|
|
|
3
3
|
Copyright (c) 2026 SkillLord Contributors
|
|
4
4
|
|
|
5
|
-
This project incorporates code from:
|
|
6
|
-
|
|
7
|
-
1. Everything Claude Code (ECC)
|
|
8
|
-
- Original Author: Affaan Mustafa
|
|
9
|
-
- License: MIT (2026)
|
|
10
|
-
- Repository: https://github.com/affaan-m/everything-claude-code
|
|
11
|
-
|
|
12
|
-
2. ClaudeKit Engineer
|
|
13
|
-
- Original Author: Duy Nguyen
|
|
14
|
-
- License: MIT (2024)
|
|
15
|
-
- Repository: https://github.com/claudekit/claudekit-engineer
|
|
16
|
-
|
|
17
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
18
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
19
7
|
in the Software without restriction, including without limitation the rights
|
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
- **Multi-language support** — 11 language-specific rule sets (TypeScript, Python, Go, Rust, Java, Kotlin, C++, C#, PHP, Perl, Swift) + common rules
|
|
18
18
|
- **Language-specific agents** — dedicated reviewers and build resolvers for 8 languages
|
|
19
19
|
- **Design intelligence built-in** — 67 UI styles, 161 color palettes, reasoning engine for production-grade design decisions
|
|
20
|
-
- **Battle-tested foundations** — curated
|
|
20
|
+
- **Battle-tested foundations** — curated agents, skills, commands, and rules for production development
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
@@ -33,7 +33,7 @@ npm i -g claude-skill-lord
|
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
35
|
cd your-project
|
|
36
|
-
csl init #
|
|
36
|
+
csl init # install all components
|
|
37
37
|
claude # start coding with Claude Skill Lord
|
|
38
38
|
```
|
|
39
39
|
|
|
@@ -42,11 +42,10 @@ That's it. `csl init` copies skills, agents, and commands into `.claude/` and ge
|
|
|
42
42
|
### CLI commands
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
csl init #
|
|
46
|
-
csl init full # install everything (161 skills + canvas fonts)
|
|
45
|
+
csl init # install everything
|
|
47
46
|
csl init --dry-run # preview without copying
|
|
48
47
|
csl init --fresh # clean reinstall
|
|
49
|
-
csl
|
|
48
|
+
csl init --no-fonts # skip canvas font files (~7MB)
|
|
50
49
|
csl update # update CLI to latest version
|
|
51
50
|
csl migrate # update project files after csl update
|
|
52
51
|
csl migrate --dry-run # preview what would change
|
|
@@ -438,16 +437,6 @@ node tests/run-all.js
|
|
|
438
437
|
|
|
439
438
|
---
|
|
440
439
|
|
|
441
|
-
## Attribution
|
|
442
|
-
|
|
443
|
-
Built on the shoulders of giants:
|
|
444
|
-
|
|
445
|
-
> [ClaudeKit Engineer](https://github.com/claudekit/claudekit-engineer) by Duy Nguyen — base architecture, mental models, strategic depth, unique agents
|
|
446
|
-
>
|
|
447
|
-
> [Everything Claude Code](https://github.com/affaan-m/everything-claude-code) by Affaan Mustafa — cherry-picked agents, skills, commands, rules
|
|
448
|
-
>
|
|
449
|
-
> [UI/UX Pro Max Skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) by Next Level Builder — design intelligence, 67 styles, 161 color palettes, brand & design-system skills (MIT)
|
|
450
|
-
|
|
451
440
|
## Contributing
|
|
452
441
|
|
|
453
442
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
package/agents/copywriter.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: copywriter
|
|
3
|
-
description: Use this agent when you need to create high-converting, engagement-driven copy for marketing materials, social media posts, landing pages, email campaigns, product descriptions, or any content that needs to capture attention and drive action. Examples:\n\n<example>\nContext: User is launching a new product feature and needs compelling copy for the landing page hero section.\nuser: "We just added a new AI-powered code review feature. Can you write a hero headline and subheadline for the landing page?"\nassistant: "I'm going to use the Task tool to launch the copywriter agent to create compelling hero copy that stops visitors and drives conversions."\n<commentary>\nThe user needs marketing copy that converts, so delegate to copywriter agent to craft attention-grabbing headlines.\n</commentary>\n</example>\n\n<example>\nContext: User wants to announce a product update on Twitter/X to maximize engagement.\nuser: "We just shipped GitHub auto-invites for
|
|
3
|
+
description: Use this agent when you need to create high-converting, engagement-driven copy for marketing materials, social media posts, landing pages, email campaigns, product descriptions, or any content that needs to capture attention and drive action. Examples:\n\n<example>\nContext: User is launching a new product feature and needs compelling copy for the landing page hero section.\nuser: "We just added a new AI-powered code review feature. Can you write a hero headline and subheadline for the landing page?"\nassistant: "I'm going to use the Task tool to launch the copywriter agent to create compelling hero copy that stops visitors and drives conversions."\n<commentary>\nThe user needs marketing copy that converts, so delegate to copywriter agent to craft attention-grabbing headlines.\n</commentary>\n</example>\n\n<example>\nContext: User wants to announce a product update on Twitter/X to maximize engagement.\nuser: "We just shipped GitHub auto-invites for SkillLord. Need a tweet that'll get people excited."\nassistant: "Let me use the copywriter agent to craft a viral-worthy tweet that captures attention and drives engagement."\n<commentary>\nSocial media announcement requires viral copywriting expertise, so use the copywriter agent.\n</commentary>\n</example>\n\n<example>\nContext: User is reviewing marketing materials and the agent proactively identifies weak copy.\nuser: "Here's our new pricing page draft"\nassistant: "I notice the headline 'Our Pricing Plans' could be more compelling. Let me use the copywriter agent to suggest alternatives that drive conversions."\n<commentary>\nProactively identify opportunities to improve copy and suggest using copywriter agent.\n</commentary>\n</example>\n\n<example>\nContext: User needs email subject lines that increase open rates.\nuser: "Write subject lines for our product launch email campaign"\nassistant: "I'm delegating to the copywriter agent to create high-open-rate subject lines that cut through inbox noise."\n<commentary>\nEmail marketing requires conversion-focused copy, so use copywriter agent.\n</commentary>\n</example>
|
|
4
4
|
model: sonnet
|
|
5
5
|
tools: All tools
|
|
6
6
|
---
|
package/commands/claw.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Start NanoClaw v2 —
|
|
2
|
+
description: Start NanoClaw v2 — a persistent, zero-dependency REPL with model routing, skill hot-load, branching, compaction, export, and metrics.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Claw Command
|
package/commands/e2e.md
CHANGED
|
@@ -337,7 +337,7 @@ For PMX, prioritize these E2E tests:
|
|
|
337
337
|
|
|
338
338
|
## Related Agents
|
|
339
339
|
|
|
340
|
-
This command invokes the `e2e-runner` agent
|
|
340
|
+
This command invokes the `e2e-runner` agent.
|
|
341
341
|
|
|
342
342
|
For manual installs, the source file lives at:
|
|
343
343
|
`agents/e2e-runner.md`
|
package/commands/loop-start.md
CHANGED
|
@@ -26,7 +26,7 @@ Start a managed autonomous loop pattern with safety defaults.
|
|
|
26
26
|
## Required Safety Checks
|
|
27
27
|
|
|
28
28
|
- Verify tests pass before first loop iteration.
|
|
29
|
-
- Ensure `
|
|
29
|
+
- Ensure `HOOK_PROFILE` is not disabled globally.
|
|
30
30
|
- Ensure loop has explicit stop condition.
|
|
31
31
|
|
|
32
32
|
## Arguments
|
package/commands/orchestrate.md
CHANGED
|
@@ -154,7 +154,7 @@ Combine outputs into single report
|
|
|
154
154
|
|
|
155
155
|
For external tmux-pane workers with separate git worktrees, use `node scripts/orchestrate-worktrees.js plan.json --execute`. The built-in orchestration pattern stays in-process; the helper is for long-running or cross-harness sessions.
|
|
156
156
|
|
|
157
|
-
When workers need to see dirty or untracked local files from the main checkout, add `seedPaths` to the plan file.
|
|
157
|
+
When workers need to see dirty or untracked local files from the main checkout, add `seedPaths` to the plan file. SkillLord overlays only those selected paths into each worker worktree after `git worktree add`, which keeps the branch isolated while still exposing in-flight local scripts, plans, or docs.
|
|
158
158
|
|
|
159
159
|
```json
|
|
160
160
|
{
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Analyze a draft prompt and output an optimized,
|
|
2
|
+
description: Analyze a draft prompt and output an optimized, optimized version ready to paste and run. Does NOT execute the task — outputs advisory analysis only.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# /prompt-optimize
|
|
6
6
|
|
|
7
|
-
Analyze and optimize the following prompt for maximum
|
|
7
|
+
Analyze and optimize the following prompt for maximum effectiveness.
|
|
8
8
|
|
|
9
9
|
## Your Task
|
|
10
10
|
|
|
@@ -13,13 +13,13 @@ Apply the **prompt-optimizer** skill to the user's input below. Follow the 6-pha
|
|
|
13
13
|
0. **Project Detection** — Read CLAUDE.md, detect tech stack from project files (package.json, go.mod, pyproject.toml, etc.)
|
|
14
14
|
1. **Intent Detection** — Classify the task type (new feature, bug fix, refactor, research, testing, review, documentation, infrastructure, design)
|
|
15
15
|
2. **Scope Assessment** — Evaluate complexity (TRIVIAL / LOW / MEDIUM / HIGH / EPIC), using codebase size as signal if detected
|
|
16
|
-
3. **
|
|
16
|
+
3. **Component Matching** — Map to specific skills, commands, agents, and model tier
|
|
17
17
|
4. **Missing Context Detection** — Identify gaps. If 3+ critical items missing, ask the user to clarify before generating
|
|
18
18
|
5. **Workflow & Model** — Determine lifecycle position, recommend model tier, and split into multiple prompts if HIGH/EPIC
|
|
19
19
|
|
|
20
20
|
## Output Requirements
|
|
21
21
|
|
|
22
|
-
- Present diagnosis, recommended
|
|
22
|
+
- Present diagnosis, recommended components, and an optimized prompt using the Output Format from the prompt-optimizer skill
|
|
23
23
|
- Provide both **Full Version** (detailed) and **Quick Version** (compact, varied by intent type)
|
|
24
24
|
- Respond in the same language as the user's input
|
|
25
25
|
- The optimized prompt must be complete and ready to copy-paste into a new session
|
package/commands/quality-gate.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Run the
|
|
2
|
+
description: Run the quality pipeline on demand for a file or project scope.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Quality Gate Command
|
|
6
6
|
|
|
7
|
-
Run the
|
|
7
|
+
Run the quality pipeline on demand for a file or project scope.
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
package/commands/skill-create.md
CHANGED
package/commands/skill-health.md
CHANGED
|
@@ -13,22 +13,22 @@ Shows a comprehensive health dashboard for all skills in the portfolio with succ
|
|
|
13
13
|
Run the skill health CLI in dashboard mode:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
|
|
17
|
-
node "$
|
|
16
|
+
SL_ROOT="${CLAUDE_PLUGIN_ROOT:-$(node -e "var p=require('path'),f=require('fs'),h=require('os').homedir(),d=p.join(h,'.claude'),q=p.join('scripts','lib','utils.js');if(!f.existsSync(p.join(d,q))){try{var b=p.join(d,'plugins','cache','claude-skill-lord');for(var o of f.readdirSync(b))for(var v of f.readdirSync(p.join(b,o))){var c=p.join(b,o,v);if(f.existsSync(p.join(c,q))){d=c;break}}}catch(x){}}console.log(d)")}"
|
|
17
|
+
node "$SL_ROOT/scripts/skills-health.js" --dashboard
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
For a specific panel only:
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
-
|
|
24
|
-
node "$
|
|
23
|
+
SL_ROOT="${CLAUDE_PLUGIN_ROOT:-$(node -e "var p=require('path'),f=require('fs'),h=require('os').homedir(),d=p.join(h,'.claude'),q=p.join('scripts','lib','utils.js');if(!f.existsSync(p.join(d,q))){try{var b=p.join(d,'plugins','cache','claude-skill-lord');for(var o of f.readdirSync(b))for(var v of f.readdirSync(p.join(b,o))){var c=p.join(b,o,v);if(f.existsSync(p.join(c,q))){d=c;break}}}catch(x){}}console.log(d)")}"
|
|
24
|
+
node "$SL_ROOT/scripts/skills-health.js" --dashboard --panel failures
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
For machine-readable output:
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
|
|
31
|
-
node "$
|
|
30
|
+
SL_ROOT="${CLAUDE_PLUGIN_ROOT:-$(node -e "var p=require('path'),f=require('fs'),h=require('os').homedir(),d=p.join(h,'.claude'),q=p.join('scripts','lib','utils.js');if(!f.existsSync(p.join(d,q))){try{var b=p.join(d,'plugins','cache','claude-skill-lord');for(var o of f.readdirSync(b))for(var v of f.readdirSync(p.join(b,o))){var c=p.join(b,o,v);if(f.existsSync(p.join(c,q))){d=c;break}}}catch(x){}}console.log(d)")}"
|
|
31
|
+
node "$SL_ROOT/scripts/skills-health.js" --dashboard --json
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
## Usage
|
package/commands/tdd.md
CHANGED
|
@@ -319,9 +319,9 @@ Never skip the RED phase. Never write code before tests.
|
|
|
319
319
|
|
|
320
320
|
## Related Agents
|
|
321
321
|
|
|
322
|
-
This command invokes the `tdd-guide` agent
|
|
322
|
+
This command invokes the `tdd-guide` agent.
|
|
323
323
|
|
|
324
|
-
The related `tdd-workflow` skill is also bundled with
|
|
324
|
+
The related `tdd-workflow` skill is also bundled with SkillLord.
|
|
325
325
|
|
|
326
326
|
For manual installs, the source files live at:
|
|
327
327
|
- `agents/tdd-guide.md`
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
4
|
|
|
5
|
-
SkillLord is a Claude Code plugin that provides curated development workflows, structured agent orchestration, and 161 domain-specific skills. It
|
|
5
|
+
SkillLord is a Claude Code plugin that provides curated development workflows, structured agent orchestration, and 161 domain-specific skills. It provides a single, modular system for production development.
|
|
6
6
|
|
|
7
7
|
SkillLord installs as a set of markdown files into your project's `.claude/` directory. Claude Code reads these files to gain domain-specific knowledge, follow structured workflows, and respond to slash commands.
|
|
8
8
|
|
|
@@ -32,17 +32,9 @@ Workflows define multi-step processes that coordinate agents and skills. The pri
|
|
|
32
32
|
4. Pass/fail report is generated with actionable fixes
|
|
33
33
|
5. Blocks PR creation if critical issues are found
|
|
34
34
|
|
|
35
|
-
##
|
|
35
|
+
## Installation
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
| Profile | Modules Included | Use Case |
|
|
40
|
-
|---------|-----------------|----------|
|
|
41
|
-
| **core** | agents, commands, skills, hooks, workflows | Minimal setup for quick tasks |
|
|
42
|
-
| **developer** | core + rules, contexts | Individual developers (recommended) |
|
|
43
|
-
| **full** | developer + MCP configs, canvas fonts | Teams, complex projects, design work |
|
|
44
|
-
|
|
45
|
-
Each profile maps to a set of modules defined in `manifests/install-profiles.json`. Install with `csl init <profile>`.
|
|
37
|
+
`csl init` installs all components (agents, commands, skills, rules, contexts, hooks, workflows, MCP configs, canvas fonts) into `.claude/`. Use `--no-fonts` to skip canvas font files (~7MB).
|
|
46
38
|
|
|
47
39
|
## Extension Points
|
|
48
40
|
|
|
@@ -53,7 +53,7 @@ SkillLord provides 114 slash commands organized by function.
|
|
|
53
53
|
| `/ask` | Answer technical and architectural questions |
|
|
54
54
|
| `/aside` | Answer a side question without losing current context |
|
|
55
55
|
| `/model-route` | Recommend the best model tier for the current task |
|
|
56
|
-
| `/quality-gate` | Run the
|
|
56
|
+
| `/quality-gate` | Run the quality pipeline on demand |
|
|
57
57
|
| `/route` | Recommend relevant skills for current task |
|
|
58
58
|
| `/context-budget` | Analyze context window usage and find optimization opportunities |
|
|
59
59
|
| `/harness-audit` | Run a deterministic repository harness audit |
|
package/docs/SKILL-CATALOG.md
CHANGED
|
@@ -233,7 +233,7 @@ SkillLord includes 161 curated skills organized by domain. All skills live in `s
|
|
|
233
233
|
|-------|-------------|
|
|
234
234
|
| claude-code | Claude Code features, setup, configuration |
|
|
235
235
|
| claude-api | Anthropic Claude API patterns for Python and TypeScript |
|
|
236
|
-
| configure-
|
|
236
|
+
| configure-skilllord | Interactive SkillLord configuration wizard |
|
|
237
237
|
| skill-comply | Visualize skill, rule, and agent compliance |
|
|
238
238
|
| skill-stocktake | Audit Claude skills and commands for quality |
|
|
239
239
|
| rules-distill | Extract cross-cutting principles from skills |
|
package/docs/code-standards.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
**Last Updated**: 2025-10-26
|
|
4
4
|
**Version**: 1.8.0
|
|
5
|
-
**Applies To**: All code within
|
|
5
|
+
**Applies To**: All code within SkillLord project
|
|
6
6
|
|
|
7
7
|
## Overview
|
|
8
8
|
|
|
9
|
-
This document defines coding standards, file organization patterns, naming conventions, and best practices for
|
|
9
|
+
This document defines coding standards, file organization patterns, naming conventions, and best practices for SkillLord. All code must adhere to these standards to ensure consistency, maintainability, and quality.
|
|
10
10
|
|
|
11
11
|
## Core Development Principles
|
|
12
12
|
|
|
@@ -284,7 +284,7 @@ GET /api/users/:userId/posts
|
|
|
284
284
|
* Handles user authentication, registration, and profile management.
|
|
285
285
|
*
|
|
286
286
|
* @module services/user-service
|
|
287
|
-
* @author
|
|
287
|
+
* @author SkillLord
|
|
288
288
|
* @version 1.0.0
|
|
289
289
|
*/
|
|
290
290
|
```
|
|
@@ -178,9 +178,9 @@ Discord messages are sent as rich embeds with the following structure:
|
|
|
178
178
|
║ ✅ All tests passing
|
|
179
179
|
╠═══════════════════════════════╣
|
|
180
180
|
║ ⏰ Session Time: 14:30:45
|
|
181
|
-
║ 📂 Project:
|
|
181
|
+
║ 📂 Project: skilllord-project
|
|
182
182
|
╠═══════════════════════════════╣
|
|
183
|
-
║ DevPocket API •
|
|
183
|
+
║ DevPocket API • skilllord-project
|
|
184
184
|
║ Today at 14:30
|
|
185
185
|
╚═══════════════════════════════╝
|
|
186
186
|
```
|
|
@@ -63,8 +63,8 @@ function maybeRunQualityGate(filePath) {
|
|
|
63
63
|
filePath = path.resolve(filePath);
|
|
64
64
|
|
|
65
65
|
const ext = path.extname(filePath).toLowerCase();
|
|
66
|
-
const fix = String(process.env.
|
|
67
|
-
const strict = String(process.env.
|
|
66
|
+
const fix = String(process.env.SL_QUALITY_GATE_FIX || '').toLowerCase() === 'true';
|
|
67
|
+
const strict = String(process.env.SL_QUALITY_GATE_STRICT || '').toLowerCase() === 'true';
|
|
68
68
|
|
|
69
69
|
if (['.ts', '.tsx', '.js', '.jsx', '.json', '.md'].includes(ext)) {
|
|
70
70
|
const projectRoot = findProjectRoot(path.dirname(filePath));
|
|
@@ -25,8 +25,8 @@ const {
|
|
|
25
25
|
log
|
|
26
26
|
} = require('../lib/utils');
|
|
27
27
|
|
|
28
|
-
const SUMMARY_START_MARKER = '<!--
|
|
29
|
-
const SUMMARY_END_MARKER = '<!--
|
|
28
|
+
const SUMMARY_START_MARKER = '<!-- SL:SUMMARY:START -->';
|
|
29
|
+
const SUMMARY_END_MARKER = '<!-- SL:SUMMARY:END -->';
|
|
30
30
|
const SESSION_SEPARATOR = '\n---\n';
|
|
31
31
|
|
|
32
32
|
/**
|
|
@@ -225,7 +225,7 @@ echo '{
|
|
|
225
225
|
|
|
226
226
|
**Expected output:**
|
|
227
227
|
```
|
|
228
|
-
Telegram notification sent for Stop event in project
|
|
228
|
+
Telegram notification sent for Stop event in project skilllord-project
|
|
229
229
|
```
|
|
230
230
|
|
|
231
231
|
Check your Telegram chat for the test notification.
|
|
@@ -249,7 +249,7 @@ Check your Telegram chat for the test notification.
|
|
|
249
249
|
🚀 DevPocket Task Completed
|
|
250
250
|
|
|
251
251
|
📅 Time: 2025-10-22 14:30:45
|
|
252
|
-
📁 Project:
|
|
252
|
+
📁 Project: skilllord-project
|
|
253
253
|
🔧 Total Operations: 15
|
|
254
254
|
🆔 Session: abc12345...
|
|
255
255
|
|
|
@@ -269,7 +269,7 @@ Files Modified:
|
|
|
269
269
|
• src/utils/validation.ts
|
|
270
270
|
• tests/auth.test.ts
|
|
271
271
|
|
|
272
|
-
📍 Location: `/Users/user/projects/
|
|
272
|
+
📍 Location: `/Users/user/projects/skilllord-project`
|
|
273
273
|
```
|
|
274
274
|
|
|
275
275
|
### SubagentStop Event
|
|
@@ -290,13 +290,13 @@ Files Modified:
|
|
|
290
290
|
🤖 DevPocket Subagent Completed
|
|
291
291
|
|
|
292
292
|
📅 Time: 2025-10-22 14:35:20
|
|
293
|
-
📁 Project:
|
|
293
|
+
📁 Project: skilllord-project
|
|
294
294
|
🔧 Agent Type: planner
|
|
295
295
|
🆔 Session: abc12345...
|
|
296
296
|
|
|
297
297
|
Specialized agent completed its task.
|
|
298
298
|
|
|
299
|
-
📍 Location: `/Users/user/projects/
|
|
299
|
+
📍 Location: `/Users/user/projects/skilllord-project`
|
|
300
300
|
```
|
|
301
301
|
|
|
302
302
|
## Notification Examples
|
package/package.json
CHANGED
package/scripts/install.js
CHANGED
|
@@ -22,8 +22,6 @@ for (let i = 0; i < args.length; i++) {
|
|
|
22
22
|
flags.noFonts = true;
|
|
23
23
|
} else if (args[i] === '--help' || args[i] === '-h') {
|
|
24
24
|
flags.help = true;
|
|
25
|
-
} else if (['full', 'core', 'developer'].includes(args[i])) {
|
|
26
|
-
flags.profile = args[i];
|
|
27
25
|
}
|
|
28
26
|
}
|
|
29
27
|
|
|
@@ -47,32 +45,23 @@ const skillLordRoot = path.resolve(__dirname, '..');
|
|
|
47
45
|
const targetDir = path.resolve(flags.target || process.cwd());
|
|
48
46
|
const targetClaudeDir = path.join(targetDir, '.claude');
|
|
49
47
|
|
|
50
|
-
// Load manifest
|
|
48
|
+
// Load modules manifest
|
|
51
49
|
const { collectModuleFiles, buildPluginJson } = require('./lib/profile-utils');
|
|
52
|
-
const manifestPath = path.join(skillLordRoot, 'manifests', 'install-profiles.json');
|
|
53
50
|
const modulesPath = path.join(skillLordRoot, 'manifests', 'install-modules.json');
|
|
54
51
|
|
|
55
|
-
if (!fs.existsSync(
|
|
56
|
-
console.error('Error:
|
|
52
|
+
if (!fs.existsSync(modulesPath)) {
|
|
53
|
+
console.error('Error: install-modules.json not found. Ensure SkillLord is properly installed.');
|
|
57
54
|
process.exit(1);
|
|
58
55
|
}
|
|
59
56
|
|
|
60
|
-
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
61
57
|
const modules = JSON.parse(fs.readFileSync(modulesPath, 'utf8'));
|
|
62
58
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if (!profileConfig) {
|
|
66
|
-
console.error(`Error: Unknown profile "${profile}". Valid profiles: ${Object.keys(manifest.profiles).join(', ')}`);
|
|
67
|
-
process.exit(1);
|
|
68
|
-
}
|
|
69
|
-
let moduleIds = profileConfig.modules;
|
|
59
|
+
// Install all modules (optionally skip fonts)
|
|
60
|
+
let allModules = modules.modules;
|
|
70
61
|
if (flags.noFonts) {
|
|
71
|
-
|
|
62
|
+
allModules = allModules.filter(m => m.id !== 'canvas-fonts');
|
|
72
63
|
}
|
|
73
64
|
|
|
74
|
-
const selectedModules = modules.modules.filter(m => moduleIds.includes(m.id));
|
|
75
|
-
|
|
76
65
|
const pkg = require(path.join(skillLordRoot, 'package.json'));
|
|
77
66
|
console.log(`\n Claude Skill Lord v${pkg.version}`);
|
|
78
67
|
console.log(` ${'='.repeat(38)}\n`);
|
|
@@ -81,10 +70,10 @@ if (flags.noFonts) console.log(` Fonts: skipped (--no-fonts)`);
|
|
|
81
70
|
console.log(` Dry run: ${flags.dryRun ? 'yes' : 'no'}\n`);
|
|
82
71
|
|
|
83
72
|
// Collect all files to copy
|
|
84
|
-
for (const mod of
|
|
73
|
+
for (const mod of allModules) {
|
|
85
74
|
console.log(` [${mod.cost}] ${mod.id}: ${mod.description}`);
|
|
86
75
|
}
|
|
87
|
-
const filesToCopy = collectModuleFiles(
|
|
76
|
+
const filesToCopy = collectModuleFiles(allModules);
|
|
88
77
|
|
|
89
78
|
console.log(`\n Files to install: ${filesToCopy.length}`);
|
|
90
79
|
|
|
@@ -119,7 +108,7 @@ for (const f of filesToCopy) {
|
|
|
119
108
|
|
|
120
109
|
// Generate plugin.json
|
|
121
110
|
const pluginJsonPath = path.join(targetClaudeDir, 'plugin.json');
|
|
122
|
-
const pluginJson = buildPluginJson(
|
|
111
|
+
const pluginJson = buildPluginJson(filesToCopy, pkg.version);
|
|
123
112
|
fs.writeFileSync(pluginJsonPath, JSON.stringify(pluginJson, null, 2));
|
|
124
113
|
console.log(`\n Generated: .claude/plugin.json`);
|
|
125
114
|
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Shared hook enable/disable controls.
|
|
4
4
|
*
|
|
5
5
|
* Controls:
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
6
|
+
* - SL_HOOK_PROFILE=minimal|standard|strict (default: standard)
|
|
7
|
+
* - SL_DISABLED_HOOKS=comma,separated,hook,ids
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
'use strict';
|
|
@@ -16,12 +16,12 @@ function normalizeId(value) {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
function getHookProfile() {
|
|
19
|
-
const raw = String(process.env.
|
|
19
|
+
const raw = String(process.env.SL_HOOK_PROFILE || 'standard').trim().toLowerCase();
|
|
20
20
|
return VALID_PROFILES.has(raw) ? raw : 'standard';
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
function getDisabledHookIds() {
|
|
24
|
-
const raw = String(process.env.
|
|
24
|
+
const raw = String(process.env.SL_DISABLED_HOOKS || '');
|
|
25
25
|
if (!raw.trim()) return new Set();
|
|
26
26
|
|
|
27
27
|
return new Set(
|
|
@@ -8,13 +8,12 @@ const path = require('path');
|
|
|
8
8
|
|
|
9
9
|
const rootDir = path.resolve(__dirname, '..', '..');
|
|
10
10
|
|
|
11
|
-
function
|
|
12
|
-
const manifest = JSON.parse(fs.readFileSync(path.join(rootDir, 'manifests', 'install-profiles.json'), 'utf8'));
|
|
11
|
+
function loadModules() {
|
|
13
12
|
const modules = JSON.parse(fs.readFileSync(path.join(rootDir, 'manifests', 'install-modules.json'), 'utf8'));
|
|
14
|
-
return {
|
|
13
|
+
return { modules };
|
|
15
14
|
}
|
|
16
15
|
|
|
17
|
-
function buildPluginJson(
|
|
16
|
+
function buildPluginJson(filesToCopy, version) {
|
|
18
17
|
const agentFiles = filesToCopy
|
|
19
18
|
.filter(f => f.rel.startsWith('agents/') && f.rel.endsWith('.md'))
|
|
20
19
|
.map(f => `./${f.rel}`);
|
|
@@ -83,4 +82,4 @@ function collectModuleFiles(selectedModules) {
|
|
|
83
82
|
return filesToCopy;
|
|
84
83
|
}
|
|
85
84
|
|
|
86
|
-
module.exports = {
|
|
85
|
+
module.exports = { loadModules, buildPluginJson, readPluginJson, collectFiles, collectModuleFiles };
|
package/scripts/sl.js
CHANGED
|
@@ -141,12 +141,9 @@ const commands = {
|
|
|
141
141
|
console.log(` New version: ${newVersion}`);
|
|
142
142
|
|
|
143
143
|
// Collect files from source (all modules)
|
|
144
|
-
const {
|
|
145
|
-
const {
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
// Collect all source files
|
|
149
|
-
const sourceFiles = collectModuleFiles(selectedModules);
|
|
144
|
+
const { loadModules } = require('./lib/profile-utils');
|
|
145
|
+
const { modules } = loadModules();
|
|
146
|
+
const sourceFiles = collectModuleFiles(modules.modules);
|
|
150
147
|
|
|
151
148
|
// Compare and find files to update
|
|
152
149
|
let added = 0;
|
|
@@ -179,7 +176,7 @@ const commands = {
|
|
|
179
176
|
// Rebuild plugin.json with correct agents/skills for detected profile
|
|
180
177
|
const { buildPluginJson } = require('./lib/profile-utils');
|
|
181
178
|
if (!dryRun) {
|
|
182
|
-
const rebuilt = buildPluginJson(
|
|
179
|
+
const rebuilt = buildPluginJson(sourceFiles, newVersion);
|
|
183
180
|
fs.writeFileSync(pluginPath, JSON.stringify(rebuilt, null, 2));
|
|
184
181
|
console.log(` Rebuilt plugin.json (${rebuilt.agents.length} agents, ${rebuilt.skills.length} skill dirs)`);
|
|
185
182
|
}
|
|
@@ -239,7 +236,7 @@ const commands = {
|
|
|
239
236
|
},
|
|
240
237
|
|
|
241
238
|
diff: () => {
|
|
242
|
-
const {
|
|
239
|
+
const { loadModules } = require('./lib/profile-utils');
|
|
243
240
|
const targetDir = path.resolve(subArgs.includes('--target')
|
|
244
241
|
? subArgs[subArgs.indexOf('--target') + 1] : '.');
|
|
245
242
|
const claudeDir = path.join(targetDir, '.claude');
|
|
@@ -251,10 +248,8 @@ const commands = {
|
|
|
251
248
|
|
|
252
249
|
console.log(`\n Claude Skill Lord — Diff\n`);
|
|
253
250
|
|
|
254
|
-
const {
|
|
255
|
-
const
|
|
256
|
-
|
|
257
|
-
const sourceFiles = collectModuleFiles(selectedModules);
|
|
251
|
+
const { modules } = loadModules();
|
|
252
|
+
const sourceFiles = collectModuleFiles(modules.modules);
|
|
258
253
|
|
|
259
254
|
let modified = 0, unchanged = 0, missing = 0;
|
|
260
255
|
for (const f of sourceFiles) {
|
|
@@ -454,7 +449,7 @@ const commands = {
|
|
|
454
449
|
Usage: csl <command> [options]
|
|
455
450
|
|
|
456
451
|
Commands:
|
|
457
|
-
init Install in current project (43 agents,
|
|
452
|
+
init Install in current project (43 agents, 161 skills, 114 commands)
|
|
458
453
|
update Update CLI to latest version
|
|
459
454
|
migrate Update project files after csl update
|
|
460
455
|
diff Compare project files with source package
|
package/skills/SKILL.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: x-api
|
|
3
3
|
description: X/Twitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.
|
|
4
|
-
origin: ECC
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# X API
|