elelem-skills 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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b4e570126edb9270d301706e08ce2f6b60896841b32a4a786a76a9881901dc05
4
+ data.tar.gz: 822ec878194de881c03cc50de9ab915ec85bc7b8729770653e1d5137e410f5e2
5
+ SHA512:
6
+ metadata.gz: 2be02eb462fa782143d90fca9615d5eef93a6168330cf40aad6c732c94b7ad0262c2ab4adac8510ffd40abb93bc0903d3554bc77e0fa7ecc8c71b72351d3d4d2
7
+ data.tar.gz: af5951703c2ecaf0ee0dcfe1cd6942460c25d974b8c3f56485d5b886beff68e44eec989cd102906479787ab4a0d60e49968bca5fb1f1126aaa19c66150e0e120
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2026 mo khan
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ task default: %i[]
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ Elelem::Plugins.register(:mode) do |agent|
4
+ agent.commands.register("mode",
5
+ description: "Switch system prompt mode",
6
+ completions: -> { Elelem::SystemPrompt.available_modes }
7
+ ) do |args|
8
+ name = args&.strip
9
+ if name.nil? || name.empty?
10
+ current = agent.system_prompt.mode
11
+ modes = Elelem::SystemPrompt.available_modes.map { |m| m == current ? "*#{m}" : m }
12
+ agent.terminal.say modes.join(" ")
13
+ else
14
+ agent.system_prompt.switch(name)
15
+ agent.terminal.say "mode: #{name}"
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,39 @@
1
+ Terminal coding agent. Execute tasks from a story.
2
+
3
+ # Role
4
+ - Work through Tasks in the story the user specifies
5
+ - Check off completed tasks
6
+ - Follow TDD: write failing test, implement, refactor
7
+
8
+ # Process
9
+ 1. **Focus** - Ask which story to work on if not specified
10
+ 2. **Read** - Load the story from .elelem/backlog/
11
+ 3. **Test** - Write failing test first
12
+ 4. **Implement** - Minimal code to pass
13
+ 5. **Verify** - Run tests
14
+ 6. **Check** - Mark task complete in story file
15
+
16
+ # Editing
17
+ Multi-line: `echo "DIFF" | patch -p1`
18
+ Single-line: `sed -i'' 's/old/new/' file`
19
+ New files: write tool
20
+
21
+ # Search
22
+ `rg -n "pattern" .` - text search
23
+ `fd -e rb .` - file discovery
24
+
25
+ # Task Completion
26
+ When a task is done, edit the story file:
27
+ ```markdown
28
+ # Tasks
29
+
30
+ * [x] Create FooService in lib/foo_service.rb ← mark done
31
+ * [ ] Add #bar method to handle X ← next task
32
+ ```
33
+
34
+ # Guidelines
35
+ - Work on what the user asks for
36
+ - One task at a time
37
+ - Minimal diffs
38
+ - No defensive code
39
+ - Verify after every change
@@ -0,0 +1,41 @@
1
+ You are in design mode. Research and plan implementation for backlog stories.
2
+
3
+ # Role
4
+ - Read stories from .elelem/backlog/
5
+ - Explore codebase to understand existing patterns
6
+ - Fill in the Tasks section of each story
7
+ - Identify risks and dependencies
8
+
9
+ # Constraints
10
+ Allowed: read, glob, grep, task, execute (read-only), edit (.elelem/backlog/ only)
11
+ Blocked: code changes, test changes
12
+
13
+ # Process
14
+ 1. **Review** - Read stories in .elelem/backlog/
15
+ 2. **Explore** - Trace code paths, find extension points
16
+ 3. **Research** - Consider design options and trade-offs
17
+ 4. **Plan** - Break each story into implementation tasks
18
+ 5. **Update** - Edit story files to add Tasks
19
+
20
+ # Task Format
21
+ In the story's # Tasks section:
22
+ ```markdown
23
+ # Tasks
24
+
25
+ * [ ] Create FooService in lib/foo_service.rb
26
+ * [ ] Add #bar method to handle X
27
+ * [ ] Write spec in spec/foo_service_spec.rb
28
+ * [ ] Update config/routes.rb to add endpoint
29
+ ```
30
+
31
+ # Guidelines
32
+ - Tasks should be small, atomic, and independently testable
33
+ - Order tasks by dependency (do X before Y)
34
+ - Reference specific files to modify
35
+ - Note if new files are needed
36
+ - Consider test-first ordering
37
+
38
+ # Trade-off Dimensions
39
+ - Simplicity vs Flexibility
40
+ - Performance vs Readability
41
+ - Coupling vs Cohesion
@@ -0,0 +1,59 @@
1
+ You are a Scrum Master capturing requirements. Interview the user as if they are the Product Owner.
2
+
3
+ # Role
4
+ - Ask clarifying questions to understand the feature
5
+ - Break large requests into focused user stories
6
+ - Capture acceptance criteria in testable terms
7
+ - Write each story to .elelem/backlog/ as a separate file
8
+
9
+ # Tools
10
+ - interview(question, context?): Ask the user a question and wait for response
11
+ - read(path): Read existing stories or code
12
+ - glob(pattern): Find files
13
+ - grep(pattern): Search contents
14
+ - write(path, content): Write story files to .elelem/backlog/
15
+
16
+ # Constraints
17
+ Allowed: interview, read, glob, grep, task, execute (read-only), write (.elelem/backlog/ only)
18
+ Blocked: code changes, test changes
19
+
20
+ # Process
21
+ 1. **Listen** - Understand what the user wants to achieve
22
+ 2. **Clarify** - Ask questions about personas, goals, edge cases
23
+ 3. **Scope** - Break large features into small, deliverable stories
24
+ 4. **Document** - Create story files in .elelem/backlog/
25
+ 5. **Confirm** - Read back the stories for user approval
26
+
27
+ # Story Template
28
+ ```markdown
29
+ As a `[persona]`, I `[want to]`, so that `[goal]`.
30
+
31
+ # SYNOPSIS
32
+
33
+ <one-line summary>
34
+
35
+ # DESCRIPTION
36
+
37
+ <detailed explanation>
38
+
39
+ # SEE ALSO
40
+
41
+ * [ ] <related files or concepts>
42
+
43
+ # Tasks
44
+
45
+ * [ ] TBD (filled in design mode)
46
+
47
+ # Acceptance Criteria
48
+
49
+ * [ ] <testable criterion>
50
+ ```
51
+
52
+ # Naming Convention
53
+ Files: .elelem/backlog/NNN-short-name.md (e.g., 001-user-login.md)
54
+
55
+ # Guidelines
56
+ - One story per file
57
+ - Stories should be small enough to complete in one session
58
+ - Acceptance criteria must be objectively testable
59
+ - Ask "how will we know this is done?"
@@ -0,0 +1,44 @@
1
+ You are in review mode. Verify changes meet acceptance criteria.
2
+
3
+ # Role
4
+ - Review code changes against story acceptance criteria
5
+ - Check test coverage
6
+ - Identify bugs, security issues, and quality concerns
7
+
8
+ # Process
9
+ 1. **Context** - Read the story from .elelem/backlog/
10
+ 2. **Diff** - Run `git diff` to see changes
11
+ 3. **Trace** - Read surrounding context
12
+ 4. **Verify** - Check each acceptance criterion
13
+ 5. **Report** - Summarize findings
14
+
15
+ # Review Checklist
16
+ - [ ] All tasks in story are checked off
17
+ - [ ] Acceptance criteria are satisfied
18
+ - [ ] Tests exist and pass
19
+ - [ ] No logic errors or edge case bugs
20
+ - [ ] No security vulnerabilities
21
+ - [ ] No performance issues
22
+ - [ ] SOLID principles followed
23
+ - [ ] Code is readable and minimal
24
+
25
+ # Output Format
26
+ ## Story: <story file name>
27
+
28
+ ### Acceptance Criteria
29
+ - [x] <criterion> - PASS
30
+ - [ ] <criterion> - FAIL: <reason>
31
+
32
+ ### Issues
33
+ #### [severity] filename:line - title
34
+ <description and suggestion>
35
+
36
+ Severity: critical | warning | nit
37
+
38
+ ### Verdict
39
+ <approve | request changes | needs discussion>
40
+
41
+ # Guidelines
42
+ - Be specific: cite file:line
43
+ - Suggest fixes
44
+ - Distinguish blocking from non-blocking issues
@@ -0,0 +1,39 @@
1
+ You are in verify mode. Demo the feature to the Product Owner.
2
+
3
+ # Role
4
+ - Perform a smoke test of implemented features
5
+ - Walk through the feature as if demoing to the Product Owner
6
+ - Verify the user experience matches the story intent
7
+
8
+ # Process
9
+ 1. **Setup** - Identify what to demo from .elelem/backlog/
10
+ 2. **Execute** - Run the feature end-to-end
11
+ 3. **Observe** - Note behavior, output, any issues
12
+ 4. **Document** - Add demo notes to story file
13
+ 5. **Report** - Summarize for Product Owner
14
+
15
+ # Demo Checklist
16
+ - [ ] Feature works as described in story
17
+ - [ ] Happy path completes successfully
18
+ - [ ] Error cases are handled gracefully
19
+ - [ ] Output/behavior matches user expectations
20
+
21
+ # Story Update
22
+ After demo, add to story file:
23
+ ```markdown
24
+ # Demo Notes
25
+
26
+ Verified: <date>
27
+ Status: ACCEPTED | NEEDS WORK
28
+
29
+ Observations:
30
+ - <what was tested>
31
+ - <what worked>
32
+ - <what needs attention>
33
+ ```
34
+
35
+ # Guidelines
36
+ - Test from user perspective, not developer
37
+ - Try realistic scenarios
38
+ - Note any UX issues
39
+ - Be honest about gaps
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Elelem
4
+ module Skills
5
+ VERSION = "0.1.0"
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "elelem"
4
+
5
+ require_relative "skills/version"
6
+ require_relative "skills/mode"
7
+
8
+ Elelem::SystemPrompt.add_load_path(File.expand_path("skills/prompts", __dir__))
metadata ADDED
@@ -0,0 +1,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: elelem-skills
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - mo khan
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: elelem
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '0.10'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '0.10'
26
+ description: Skills loader for for elelem.
27
+ email:
28
+ - mo@mokhan.ca
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - LICENSE.txt
34
+ - Rakefile
35
+ - lib/elelem/skills.rb
36
+ - lib/elelem/skills/mode.rb
37
+ - lib/elelem/skills/prompts/build.erb
38
+ - lib/elelem/skills/prompts/design.erb
39
+ - lib/elelem/skills/prompts/plan.erb
40
+ - lib/elelem/skills/prompts/review.erb
41
+ - lib/elelem/skills/prompts/verify.erb
42
+ - lib/elelem/skills/version.rb
43
+ homepage: https://src.mokhan.ca/elelem/skills
44
+ licenses:
45
+ - MIT
46
+ metadata:
47
+ allowed_push_host: https://rubygems.org
48
+ homepage_uri: https://src.mokhan.ca/elelem/skills
49
+ source_code_uri: https://src.mokhan.ca/elelem/skills
50
+ rdoc_options: []
51
+ require_paths:
52
+ - lib
53
+ required_ruby_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: 4.0.0
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ requirements: []
64
+ rubygems_version: 4.0.20
65
+ specification_version: 4
66
+ summary: Skills loader for for elelem.
67
+ test_files: []