lex-skill-superpowers 0.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.
- checksums.yaml +7 -0
- data/content/brainstorming/SKILL.md +22 -0
- data/content/executing_plans/SKILL.md +17 -0
- data/content/systematic_debugging/SKILL.md +15 -0
- data/content/test_driven_development/SKILL.md +14 -0
- data/content/writing_plans/SKILL.md +18 -0
- data/lib/lex/skill/superpowers/skills/brainstorming.rb +65 -0
- data/lib/lex/skill/superpowers/skills/executing_plans.rb +32 -0
- data/lib/lex/skill/superpowers/skills/systematic_debugging.rb +32 -0
- data/lib/lex/skill/superpowers/skills/test_driven_development.rb +32 -0
- data/lib/lex/skill/superpowers/skills/writing_plans.rb +32 -0
- data/lib/lex/skill/superpowers/version.rb +9 -0
- data/lib/lex/skill/superpowers.rb +22 -0
- metadata +91 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: aadf5c73d800e41a7d145d6fd3a4c0b6c6ecd7cbc1945de453c96100b3e9c6c6
|
|
4
|
+
data.tar.gz: 17ff51c67e1f638c68c3b806482de298b331590c7172b9295577ee337d2a703c
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 2c7d32e48559aaa4151b2e2afce4cff51e759e19856ac25f7566738971a1a18157ac762ff94327455268b514def12105767f0f42be964c32f623911c5afad2de
|
|
7
|
+
data.tar.gz: 432b7e164c5d53c24e152c294b36d86f562176123eec91092209038f53eb9a37e9c6aaff87d400187876fdc848fbadf47da064e4c11b72d537a15be3df2dfc53
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Brainstorming Ideas Into Designs
|
|
2
|
+
|
|
3
|
+
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
|
|
4
|
+
|
|
5
|
+
Start by understanding the current project context, then ask questions one at a time to refine
|
|
6
|
+
the idea. Once you understand what you're building, present the design and get user approval.
|
|
7
|
+
|
|
8
|
+
## Process
|
|
9
|
+
|
|
10
|
+
1. Explore project context — check files, docs, recent commits
|
|
11
|
+
2. Ask clarifying questions — one at a time
|
|
12
|
+
3. Propose 2-3 approaches with trade-offs and your recommendation
|
|
13
|
+
4. Present design sections — get approval after each section
|
|
14
|
+
5. Write design doc — save to `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md`
|
|
15
|
+
6. Transition to writing-plans skill
|
|
16
|
+
|
|
17
|
+
## Key Principles
|
|
18
|
+
|
|
19
|
+
- One question at a time — don't overwhelm
|
|
20
|
+
- YAGNI ruthlessly — remove unnecessary features
|
|
21
|
+
- Explore alternatives — always propose 2-3 approaches
|
|
22
|
+
- Be flexible — go back and clarify when needed
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Executing Implementation Plans
|
|
2
|
+
|
|
3
|
+
Work through an implementation plan task-by-task, tracking progress with checkboxes.
|
|
4
|
+
|
|
5
|
+
## Process
|
|
6
|
+
|
|
7
|
+
1. Read the full plan before starting
|
|
8
|
+
2. Complete tasks in order — do not skip
|
|
9
|
+
3. Check off each step as completed
|
|
10
|
+
4. Stop at gates and report result
|
|
11
|
+
5. On failure: diagnose, fix, continue — do not abandon the plan
|
|
12
|
+
|
|
13
|
+
## Rules
|
|
14
|
+
|
|
15
|
+
- Never mark a step done without running the command
|
|
16
|
+
- Never skip a failing-test step
|
|
17
|
+
- Commit after each task unless instructed otherwise
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Systematic Debugging
|
|
2
|
+
|
|
3
|
+
Diagnose before fixing. Form a hypothesis, test it, fix the root cause.
|
|
4
|
+
|
|
5
|
+
## Process
|
|
6
|
+
|
|
7
|
+
1. Reproduce the failure with a minimal test case
|
|
8
|
+
2. Read the error — don't guess
|
|
9
|
+
3. Form one hypothesis about root cause
|
|
10
|
+
4. Add a probe (log, assertion, failing test) to verify
|
|
11
|
+
5. Fix the confirmed root cause, not symptoms
|
|
12
|
+
6. Verify the fix and add a regression test
|
|
13
|
+
7. Commit
|
|
14
|
+
|
|
15
|
+
Never fix without reproducing. Never ship a fix without a test.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Test-Driven Development
|
|
2
|
+
|
|
3
|
+
Write failing tests first. Implement minimal code to pass. Refactor.
|
|
4
|
+
|
|
5
|
+
## Cycle
|
|
6
|
+
|
|
7
|
+
1. Write the failing test
|
|
8
|
+
2. Run it — confirm it fails with expected error
|
|
9
|
+
3. Write minimal implementation to pass
|
|
10
|
+
4. Run again — confirm passing
|
|
11
|
+
5. Refactor if needed
|
|
12
|
+
6. Commit
|
|
13
|
+
|
|
14
|
+
Never skip the failing run. Never write more code than the test requires.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Writing Implementation Plans
|
|
2
|
+
|
|
3
|
+
Produce bite-sized, TDD-structured implementation plans for agentic execution.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
- File map first: which files, what each does
|
|
8
|
+
- One task per logical unit
|
|
9
|
+
- Each task: failing test → run → implement → run → commit
|
|
10
|
+
- Full code in every step — no placeholders
|
|
11
|
+
- Exact commands with expected output
|
|
12
|
+
|
|
13
|
+
## Checklist
|
|
14
|
+
|
|
15
|
+
- [ ] File map defined
|
|
16
|
+
- [ ] All spec coverage
|
|
17
|
+
- [ ] No "TBD" or "similar to Task N"
|
|
18
|
+
- [ ] Type consistency across tasks
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lex
|
|
4
|
+
module Skill
|
|
5
|
+
module Superpowers
|
|
6
|
+
module Skills
|
|
7
|
+
class Brainstorming < Legion::LLM::Skills::Base
|
|
8
|
+
skill_name 'brainstorming'
|
|
9
|
+
namespace 'superpowers'
|
|
10
|
+
description 'Collaborative design brainstorming — turns ideas into specs'
|
|
11
|
+
trigger_words 'brainstorm', 'design', 'idea', 'spec'
|
|
12
|
+
|
|
13
|
+
def explore_context(context: {}) # rubocop:disable Lint/UnusedMethodArgument
|
|
14
|
+
Legion::LLM::Skills::StepResult.new(
|
|
15
|
+
inject: self.class.content,
|
|
16
|
+
gate: nil,
|
|
17
|
+
metadata: { step: 'explore_context' }
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def clarify_requirements(context: {}) # rubocop:disable Lint/UnusedMethodArgument
|
|
22
|
+
Legion::LLM::Skills::StepResult.new(
|
|
23
|
+
inject: nil,
|
|
24
|
+
gate: { type: :user_input, prompt: 'What would you like to build?' },
|
|
25
|
+
metadata: { step: 'clarify_requirements' }
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def propose_approaches(context: {}) # rubocop:disable Lint/UnusedMethodArgument
|
|
30
|
+
Legion::LLM::Skills::StepResult.new(
|
|
31
|
+
inject: nil,
|
|
32
|
+
gate: { type: :user_input, prompt: 'Review the approaches above and choose one.' },
|
|
33
|
+
metadata: { step: 'propose_approaches' }
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def present_design(context: {}) # rubocop:disable Lint/UnusedMethodArgument
|
|
38
|
+
Legion::LLM::Skills::StepResult.new(
|
|
39
|
+
inject: nil,
|
|
40
|
+
gate: { type: :user_input, prompt: 'Does this design look correct?' },
|
|
41
|
+
metadata: { step: 'present_design' }
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def write_spec(context: {}) # rubocop:disable Lint/UnusedMethodArgument
|
|
46
|
+
Legion::LLM::Skills::StepResult.new(
|
|
47
|
+
inject: nil,
|
|
48
|
+
gate: nil,
|
|
49
|
+
metadata: { step: 'write_spec', complete: true }
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
steps :explore_context, :clarify_requirements, :propose_approaches,
|
|
54
|
+
:present_design, :write_spec
|
|
55
|
+
|
|
56
|
+
class << self
|
|
57
|
+
def content_path
|
|
58
|
+
::File.expand_path('../../../../../../../content/brainstorming/SKILL.md', __dir__)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lex
|
|
4
|
+
module Skill
|
|
5
|
+
module Superpowers
|
|
6
|
+
module Skills
|
|
7
|
+
class ExecutingPlans < Legion::LLM::Skills::Base
|
|
8
|
+
skill_name 'executing_plans'
|
|
9
|
+
namespace 'superpowers'
|
|
10
|
+
description 'Execute an implementation plan task-by-task with checkpoint tracking'
|
|
11
|
+
trigger_words 'execute plan', 'run plan', 'implement plan'
|
|
12
|
+
|
|
13
|
+
def inject_execution_context(context: {}) # rubocop:disable Lint/UnusedMethodArgument
|
|
14
|
+
Legion::LLM::Skills::StepResult.new(
|
|
15
|
+
inject: self.class.content,
|
|
16
|
+
gate: nil,
|
|
17
|
+
metadata: { step: 'inject_execution_context' }
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
steps :inject_execution_context
|
|
22
|
+
|
|
23
|
+
class << self
|
|
24
|
+
def content_path
|
|
25
|
+
::File.expand_path('../../../../../../../content/executing_plans/SKILL.md', __dir__)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lex
|
|
4
|
+
module Skill
|
|
5
|
+
module Superpowers
|
|
6
|
+
module Skills
|
|
7
|
+
class SystematicDebugging < Legion::LLM::Skills::Base
|
|
8
|
+
skill_name 'systematic_debugging'
|
|
9
|
+
namespace 'superpowers'
|
|
10
|
+
description 'Diagnose-first debugging: reproduce, hypothesize, probe, fix'
|
|
11
|
+
trigger_words 'debug', 'diagnose', 'fix bug', 'root cause'
|
|
12
|
+
|
|
13
|
+
def inject_debugging_context(context: {}) # rubocop:disable Lint/UnusedMethodArgument
|
|
14
|
+
Legion::LLM::Skills::StepResult.new(
|
|
15
|
+
inject: self.class.content,
|
|
16
|
+
gate: nil,
|
|
17
|
+
metadata: { step: 'inject_debugging_context' }
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
steps :inject_debugging_context
|
|
22
|
+
|
|
23
|
+
class << self
|
|
24
|
+
def content_path
|
|
25
|
+
::File.expand_path('../../../../../../../content/systematic_debugging/SKILL.md', __dir__)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lex
|
|
4
|
+
module Skill
|
|
5
|
+
module Superpowers
|
|
6
|
+
module Skills
|
|
7
|
+
class TestDrivenDevelopment < Legion::LLM::Skills::Base
|
|
8
|
+
skill_name 'test_driven_development'
|
|
9
|
+
namespace 'superpowers'
|
|
10
|
+
description 'Red-green-refactor TDD cycle for feature implementation'
|
|
11
|
+
trigger_words 'tdd', 'test-driven', 'write tests', 'implement with tests'
|
|
12
|
+
|
|
13
|
+
def inject_tdd_context(context: {}) # rubocop:disable Lint/UnusedMethodArgument
|
|
14
|
+
Legion::LLM::Skills::StepResult.new(
|
|
15
|
+
inject: self.class.content,
|
|
16
|
+
gate: nil,
|
|
17
|
+
metadata: { step: 'inject_tdd_context' }
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
steps :inject_tdd_context
|
|
22
|
+
|
|
23
|
+
class << self
|
|
24
|
+
def content_path
|
|
25
|
+
::File.expand_path('../../../../../../../content/test_driven_development/SKILL.md', __dir__)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lex
|
|
4
|
+
module Skill
|
|
5
|
+
module Superpowers
|
|
6
|
+
module Skills
|
|
7
|
+
class WritingPlans < Legion::LLM::Skills::Base
|
|
8
|
+
skill_name 'writing_plans'
|
|
9
|
+
namespace 'superpowers'
|
|
10
|
+
description 'Write bite-sized TDD implementation plans for agentic execution'
|
|
11
|
+
trigger_words 'write plan', 'implementation plan', 'create plan'
|
|
12
|
+
|
|
13
|
+
def inject_planning_context(context: {}) # rubocop:disable Lint/UnusedMethodArgument
|
|
14
|
+
Legion::LLM::Skills::StepResult.new(
|
|
15
|
+
inject: self.class.content,
|
|
16
|
+
gate: nil,
|
|
17
|
+
metadata: { step: 'inject_planning_context' }
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
steps :inject_planning_context
|
|
22
|
+
|
|
23
|
+
class << self
|
|
24
|
+
def content_path
|
|
25
|
+
::File.expand_path('../../../../../../../content/writing_plans/SKILL.md', __dir__)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'superpowers/version'
|
|
4
|
+
require_relative 'superpowers/skills/brainstorming'
|
|
5
|
+
require_relative 'superpowers/skills/test_driven_development'
|
|
6
|
+
require_relative 'superpowers/skills/systematic_debugging'
|
|
7
|
+
require_relative 'superpowers/skills/writing_plans'
|
|
8
|
+
require_relative 'superpowers/skills/executing_plans'
|
|
9
|
+
|
|
10
|
+
module Lex
|
|
11
|
+
module Skill
|
|
12
|
+
module Superpowers
|
|
13
|
+
def self.runner_modules
|
|
14
|
+
[]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.skills_required?
|
|
18
|
+
true
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: lex-skill-superpowers
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Matthew Iverson
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: legion-llm
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0.6'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0.6'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: rspec
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '3.0'
|
|
33
|
+
type: :development
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '3.0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: rubocop-legion
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
type: :development
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
54
|
+
executables: []
|
|
55
|
+
extensions: []
|
|
56
|
+
extra_rdoc_files: []
|
|
57
|
+
files:
|
|
58
|
+
- content/brainstorming/SKILL.md
|
|
59
|
+
- content/executing_plans/SKILL.md
|
|
60
|
+
- content/systematic_debugging/SKILL.md
|
|
61
|
+
- content/test_driven_development/SKILL.md
|
|
62
|
+
- content/writing_plans/SKILL.md
|
|
63
|
+
- lib/lex/skill/superpowers.rb
|
|
64
|
+
- lib/lex/skill/superpowers/skills/brainstorming.rb
|
|
65
|
+
- lib/lex/skill/superpowers/skills/executing_plans.rb
|
|
66
|
+
- lib/lex/skill/superpowers/skills/systematic_debugging.rb
|
|
67
|
+
- lib/lex/skill/superpowers/skills/test_driven_development.rb
|
|
68
|
+
- lib/lex/skill/superpowers/skills/writing_plans.rb
|
|
69
|
+
- lib/lex/skill/superpowers/version.rb
|
|
70
|
+
licenses:
|
|
71
|
+
- Apache-2.0
|
|
72
|
+
metadata:
|
|
73
|
+
rubygems_mfa_required: 'true'
|
|
74
|
+
rdoc_options: []
|
|
75
|
+
require_paths:
|
|
76
|
+
- lib
|
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '3.4'
|
|
82
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
|
+
requirements:
|
|
84
|
+
- - ">="
|
|
85
|
+
- !ruby/object:Gem::Version
|
|
86
|
+
version: '0'
|
|
87
|
+
requirements: []
|
|
88
|
+
rubygems_version: 3.6.9
|
|
89
|
+
specification_version: 4
|
|
90
|
+
summary: Superpowers skill set for Legion LLM
|
|
91
|
+
test_files: []
|