@nomad-e/bluma-cli 0.0.112 → 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.
Files changed (2) hide show
  1. package/dist/main.js +48 -20
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -4023,6 +4023,37 @@ var SYSTEM_PROMPT = `
4023
4023
 
4024
4024
  ---
4025
4025
 
4026
+ <skills_knowledge>
4027
+ ## Skills vs Base Knowledge (CRITICAL)
4028
+
4029
+ **You have TWO types of knowledge:**
4030
+
4031
+ 1. **Base Training Knowledge** - General programming knowledge from your training:
4032
+ - Testing patterns, Git workflows, Docker, React, Python, etc.
4033
+ - This is your GENERAL EXPERTISE
4034
+ - This knowledge is ALWAYS available
4035
+ - This is NOT loadable via \`load_skill\` - it's already in you
4036
+
4037
+ 2. **Pluggable Skills** - Specialized modules the user installs:
4038
+ - Listed in the \`<available_skills>\` section (if present)
4039
+ - These are LOADABLE via \`load_skill\` tool
4040
+ - These override/extend your base knowledge with project-specific workflows
4041
+ - These are files in \`.bluma/skills/\` or \`~/.bluma/skills/\`
4042
+
4043
+ **IMPORTANT RULES:**
4044
+
4045
+ - If you see \`<available_skills>\` section below \u2192 those are your pluggable skills
4046
+ - If you DON'T see \`<available_skills>\` section \u2192 you have NO pluggable skills installed
4047
+ - When asked "what skills do you have?":
4048
+ - If \`<available_skills>\` exists: list ONLY what's there
4049
+ - If \`<available_skills>\` doesn't exist: say "No pluggable skills installed. I have general knowledge about programming, testing, git, etc. but no specialized skills loaded."
4050
+ - NEVER invent skill names that aren't in \`<available_skills>\`
4051
+ - NEVER try to \`load_skill\` with a name that isn't in \`<available_skills>\`
4052
+ - Your base knowledge (testing, git, docker...) is NOT a skill - it's just knowledge you have
4053
+ </skills_knowledge>
4054
+
4055
+ ---
4056
+
4026
4057
  <environment>
4027
4058
  ## Machine Context (Your Deep Knowledge)
4028
4059
 
@@ -4070,7 +4101,7 @@ You MUST adapt all commands to this environment. Use the correct package manager
4070
4101
  - No TODO needed for single operations
4071
4102
 
4072
4103
  ### Testing Philosophy:
4073
- Run tests when modifying code. Use the \`testing\` skill for detailed best practices.
4104
+ Run tests when modifying code. If a testing skill is listed in available_skills, load it for best practices.
4074
4105
 
4075
4106
  **Commands:**
4076
4107
  - Run tests: {test_command}
@@ -4317,9 +4348,11 @@ function getUnifiedSystemPrompt(availableSkills) {
4317
4348
 
4318
4349
  You have access to specialized knowledge modules called **skills**. Skills extend your capabilities with domain-specific expertise, workflows, and best practices.
4319
4350
 
4320
- **Available skills:**
4351
+ **Available skills (ONLY these exist):**
4321
4352
  ${skillsList}
4322
4353
 
4354
+ **IMPORTANT:** The list above is EXHAUSTIVE. Do NOT invent or assume skills that are not listed. If no skills are listed, you have NO skills available.
4355
+
4323
4356
  **Skill Lifecycle:**
4324
4357
  - Skills are **ephemeral** - they exist only for the current task
4325
4358
  - After completing a task, skill context is discarded
@@ -4333,30 +4366,25 @@ ${skillsList}
4333
4366
  **BEFORE starting any task, follow this decision process:**
4334
4367
 
4335
4368
  1. **Understand the task** - What is the user trying to accomplish?
4336
- 2. **Identify the domain** - What area of expertise does this task require? (e.g., version control, testing, deployment, documentation)
4337
- 3. **Match against skills** - Read each skill's description above. Does any skill's domain match the task?
4338
- 4. **Load if matched** - If a skill matches, load it FIRST with \`load_skill\` before taking any action
4369
+ 2. **Identify the domain** - What area of expertise does this task require?
4370
+ 3. **Check the list above** - Is there a skill in the "Available skills" list that matches this domain?
4371
+ 4. **Load ONLY if it exists** - If a skill from the list matches, load it with \`load_skill\`
4339
4372
  5. **Follow skill instructions** - Once loaded, the skill provides specific workflows to follow
4340
4373
 
4341
4374
  **Decision examples:**
4342
4375
  \`\`\`
4343
- Task: "Save my changes with a good message"
4344
- \u2192 Domain: Version control, commits
4345
- \u2192 Check skills: Is there a skill for git/commits/version control?
4346
- \u2192 If yes: load_skill({ skill_name: "<matching-skill>" })
4347
-
4348
- Task: "Make sure this code works correctly"
4349
- \u2192 Domain: Testing, validation, quality assurance
4350
- \u2192 Check skills: Is there a skill for testing?
4351
- \u2192 If yes: load_skill({ skill_name: "<matching-skill>" })
4352
-
4353
- Task: "Release this to users"
4354
- \u2192 Domain: Publishing, deployment, release
4355
- \u2192 Check skills: Is there a skill for publishing/releasing?
4356
- \u2192 If yes: load_skill({ skill_name: "<matching-skill>" })
4376
+ Task: "Do X"
4377
+ \u2192 Identify domain of X
4378
+ \u2192 Check "Available skills" list above
4379
+ \u2192 If skill exists in list: load_skill({ skill_name: "<exact-name-from-list>" })
4380
+ \u2192 If NO skill matches: proceed without skill
4357
4381
  \`\`\`
4358
4382
 
4359
- **Key principle:** Match the TASK DOMAIN to the SKILL DESCRIPTION, not specific words.
4383
+ **CRITICAL:**
4384
+ - ONLY load skills that appear in the "Available skills" list above
4385
+ - NEVER invent skill names
4386
+ - If asked "what skills do you have?", list ONLY what is in "Available skills" above
4387
+ - If the list is empty or says "none", answer that no skills are currently available
4360
4388
 
4361
4389
  ---
4362
4390
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nomad-e/bluma-cli",
3
- "version": "0.0.112",
3
+ "version": "0.1.0",
4
4
  "description": "BluMa independent agent for automation and advanced software engineering.",
5
5
  "author": "Alex Fonseca",
6
6
  "license": "Apache-2.0",