palskills 1.0.0 → 1.0.2
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/README.md +6 -28
- package/bin/palskills.js +41 -19
- package/install.js +38 -0
- package/package.json +3 -3
- package/install.sh +0 -43
package/README.md
CHANGED
|
@@ -2,29 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**AI-powered development pipeline** — a suite of 5 Hermes Agent skills that orchestrate the full development lifecycle: context retrieval → planning → execution via Codex CLI → archival.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
User Prompt
|
|
7
|
-
│
|
|
8
|
-
▼
|
|
9
|
-
┌──────────────────────────────────────────────────────┐
|
|
10
|
-
│ │
|
|
11
|
-
│ 🔮 Astralym — State Machine Core │
|
|
12
|
-
│ Routes every prompt through the pipeline │
|
|
13
|
-
│ │
|
|
14
|
-
│ ├─► 📖 Lyleen — Palbox Reader & Bootstrapper │
|
|
15
|
-
│ │ Checks .palbox/ for context; creates if new │
|
|
16
|
-
│ │ │
|
|
17
|
-
│ ├─► 🐉 Jetdragon — Planner │
|
|
18
|
-
│ │ Asks clarifying questions → detailed plan │
|
|
19
|
-
│ │ │
|
|
20
|
-
│ ├─► ⚔️ Anubis — Codex Development Engine │
|
|
21
|
-
│ │ Builds Codex prompt → codex exec (SOLID+SRP) │
|
|
22
|
-
│ │ │
|
|
23
|
-
│ └─► 📝 Panthalus — Palbox Archivist │
|
|
24
|
-
│ Records plan + execution → .palbox/history/ │
|
|
25
|
-
│ │
|
|
26
|
-
└──────────────────────────────────────────────────────┘
|
|
27
|
-
```
|
|
5
|
+

|
|
28
6
|
|
|
29
7
|
## Skills
|
|
30
8
|
|
|
@@ -70,19 +48,19 @@ palskills
|
|
|
70
48
|
║ AI Development Pipeline ║
|
|
71
49
|
╚══════════════════════════════════════╝
|
|
72
50
|
|
|
73
|
-
|
|
51
|
+
Select coding agent:
|
|
74
52
|
|
|
75
53
|
[1] Codex CLI → .codex.md
|
|
76
54
|
[2] Cursor → .cursorrules
|
|
77
55
|
[3] Claude Code → CLAUDE.md
|
|
78
|
-
[4]
|
|
56
|
+
[4] All → generate all
|
|
79
57
|
|
|
80
|
-
|
|
58
|
+
Choose [1-4]:
|
|
81
59
|
```
|
|
82
60
|
|
|
83
|
-
|
|
61
|
+
Select an agent to instantly generate its config file with SOLID + SRP rules + palbox knowledge graph conventions.
|
|
84
62
|
|
|
85
|
-
### One-shot (
|
|
63
|
+
### One-shot (without installing)
|
|
86
64
|
```bash
|
|
87
65
|
npx palskills
|
|
88
66
|
```
|
package/bin/palskills.js
CHANGED
|
@@ -29,15 +29,15 @@ async function main() {
|
|
|
29
29
|
box('PALSKILLS\nAI Development Pipeline');
|
|
30
30
|
|
|
31
31
|
console.log('');
|
|
32
|
-
console.log(` ${BOLD}
|
|
32
|
+
console.log(` ${BOLD}Select coding agent:${NC}`);
|
|
33
33
|
console.log('');
|
|
34
34
|
console.log(` ${MAGENTA}[1]${NC} Codex CLI → .codex.md`);
|
|
35
35
|
console.log(` ${MAGENTA}[2]${NC} Cursor → .cursorrules`);
|
|
36
36
|
console.log(` ${MAGENTA}[3]${NC} Claude Code → CLAUDE.md`);
|
|
37
|
-
console.log(` ${MAGENTA}[4]${NC}
|
|
37
|
+
console.log(` ${MAGENTA}[4]${NC} All → generate all`);
|
|
38
38
|
console.log('');
|
|
39
39
|
|
|
40
|
-
const choice = await ask(`
|
|
40
|
+
const choice = await ask(` Choose [1-4]: `);
|
|
41
41
|
console.log('');
|
|
42
42
|
|
|
43
43
|
const agents = [];
|
|
@@ -45,7 +45,7 @@ async function main() {
|
|
|
45
45
|
else if (choice === '2') agents.push('cursor');
|
|
46
46
|
else if (choice === '3') agents.push('claude');
|
|
47
47
|
else if (choice === '4') agents.push('codex', 'cursor', 'claude');
|
|
48
|
-
else { console.log('
|
|
48
|
+
else { console.log(' Invalid choice. Exiting.'); process.exit(1); }
|
|
49
49
|
|
|
50
50
|
for (const agent of agents) {
|
|
51
51
|
generate(agent);
|
|
@@ -54,7 +54,7 @@ async function main() {
|
|
|
54
54
|
// Also install Hermes skills
|
|
55
55
|
installSkills();
|
|
56
56
|
|
|
57
|
-
console.log(`\n ${GREEN}✅ Done!${NC} Restart Hermes Agent
|
|
57
|
+
console.log(`\n ${GREEN}✅ Done!${NC} Restart Hermes Agent to load skills.\n`);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
function generate(agent) {
|
|
@@ -109,9 +109,22 @@ ALL code, comments, docstrings, variable names, and commit messages MUST be in E
|
|
|
109
109
|
- One commit per logical change.
|
|
110
110
|
- Conventional commits: feat(scope): description / fix(scope): description / test(scope): description
|
|
111
111
|
|
|
112
|
-
## Palbox
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
## Palbox Knowledge Graph (CRITICAL)
|
|
113
|
+
### Before you start ANY task
|
|
114
|
+
1. **Check if `.palbox/` exists.** If not, the project hasn't been bootstrapped yet.
|
|
115
|
+
2. **Read the core nodes:**
|
|
116
|
+
- `.palbox/README.md` — project identity, tech stack, goals
|
|
117
|
+
- `.palbox/architecture.md` — folder structure, design patterns, key modules
|
|
118
|
+
- `.palbox/methods.md` — coding conventions, testing strategy, git workflow
|
|
119
|
+
3. **Search for related past work:**
|
|
120
|
+
- Search for keywords in `.palbox/flows/` and `.palbox/history/`
|
|
121
|
+
- Follow `[[wikilinks]]` to discover connected context
|
|
122
|
+
4. **Read relevant flows** in `.palbox/flows/` — they document how features work end-to-end
|
|
123
|
+
5. **Read relevant history** in `.palbox/history/` — past plans, executions, lessons learned
|
|
124
|
+
|
|
125
|
+
### After you complete a task
|
|
126
|
+
- Record what you did. The Palskills system (Panthalus) will create a `.palbox/history/YYYY-MM-DD-feature.md` node with `[[wikilinks]]` to related entries.
|
|
127
|
+
- If you discovered new patterns, conventions, or pitfalls, note them — they enrich the graph.
|
|
115
128
|
`;
|
|
116
129
|
}
|
|
117
130
|
|
|
@@ -144,10 +157,17 @@ ALL code, comments, docs, variable names, and commit messages MUST be in English
|
|
|
144
157
|
- One commit per logical change
|
|
145
158
|
- Conventional commits format: feat(scope): / fix(scope): / test(scope):
|
|
146
159
|
|
|
147
|
-
### Project Context
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
-
|
|
160
|
+
### Project Context — Palbox Knowledge Graph
|
|
161
|
+
Before you start ANY task:
|
|
162
|
+
1. **Check if `.palbox/` exists.** Read the core nodes:
|
|
163
|
+
- `.palbox/README.md` — project identity, stack, goals
|
|
164
|
+
- `.palbox/architecture.md` — folder structure, patterns, key modules
|
|
165
|
+
- `.palbox/methods.md` — conventions, testing, git workflow
|
|
166
|
+
2. **Search `.palbox/flows/` and `.palbox/history/`** for related past work.
|
|
167
|
+
3. **Follow `[[wikilinks]]`** — they connect related nodes in the knowledge graph.
|
|
168
|
+
|
|
169
|
+
After completing work:
|
|
170
|
+
- The Palskills system (Panthalus) records to `.palbox/history/` with bi-directional links.
|
|
151
171
|
|
|
152
172
|
### Code Quality
|
|
153
173
|
- No file exceeds 200 lines without strong justification.
|
|
@@ -197,16 +217,18 @@ ALL code, comments, docstrings, variable names, function names, and commit messa
|
|
|
197
217
|
- Conventional commits: feat(scope): / fix(scope): / test(scope):
|
|
198
218
|
- Never commit generated files, node_modules, or secrets.
|
|
199
219
|
|
|
200
|
-
## Project Context
|
|
220
|
+
## Project Context — Palbox Knowledge Graph
|
|
201
221
|
Before starting any task:
|
|
202
|
-
1. Check if
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
222
|
+
1. Check if `.palbox/` exists. Read the core nodes:
|
|
223
|
+
- `.palbox/README.md` — project identity, stack, goals
|
|
224
|
+
- `.palbox/architecture.md` — folder structure, patterns, key modules
|
|
225
|
+
- `.palbox/methods.md` — conventions, testing, git workflow
|
|
226
|
+
2. Search `.palbox/flows/` and `.palbox/history/` for related past work.
|
|
227
|
+
3. Follow `[[wikilinks]]` — they connect related nodes in the knowledge graph.
|
|
207
228
|
|
|
208
229
|
After completing work:
|
|
209
|
-
- The Palskills system
|
|
230
|
+
- The Palskills system (Panthalus) records your session to `.palbox/history/` with bi-directional `[[wikilinks]]`.
|
|
231
|
+
- If you discovered patterns, pitfalls, or conventions worth preserving, note them.
|
|
210
232
|
`;
|
|
211
233
|
}
|
|
212
234
|
|
package/install.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
const os = require('os');
|
|
5
|
+
|
|
6
|
+
const GREEN = '\x1b[32m';
|
|
7
|
+
const YELLOW = '\x1b[33m';
|
|
8
|
+
const NC = '\x1b[0m';
|
|
9
|
+
|
|
10
|
+
const hermesHome = process.env.HERMES_HOME || path.join(os.homedir(), '.hermes');
|
|
11
|
+
const target = path.join(hermesHome, 'skills', 'palskills');
|
|
12
|
+
const src = path.join(__dirname, '..', 'skills');
|
|
13
|
+
|
|
14
|
+
console.log('╔══════════════════════════════════════╗');
|
|
15
|
+
console.log('║ Palskills Installer ║');
|
|
16
|
+
console.log('╚══════════════════════════════════════╝');
|
|
17
|
+
console.log('');
|
|
18
|
+
|
|
19
|
+
if (!fs.existsSync(src)) {
|
|
20
|
+
console.log(` ${YELLOW}⚠${NC} Skills source not found. Skipping.`);
|
|
21
|
+
process.exit(0);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
fs.mkdirSync(target, { recursive: true });
|
|
25
|
+
|
|
26
|
+
const skills = fs.readdirSync(src);
|
|
27
|
+
for (const skill of skills) {
|
|
28
|
+
const skillMd = path.join(src, skill, 'SKILL.md');
|
|
29
|
+
if (fs.existsSync(skillMd)) {
|
|
30
|
+
const dest = path.join(target, skill);
|
|
31
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
32
|
+
fs.copyFileSync(skillMd, path.join(dest, 'SKILL.md'));
|
|
33
|
+
console.log(` ${GREEN}✓${NC} ${skill}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
console.log('');
|
|
38
|
+
console.log(` ${GREEN}✅ Done!${NC} Skills installed to ${target}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "palskills",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "AI-powered development pipeline — 5 Hermes Agent skills orchestrated as a knowledge graph",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hermes-agent",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"files": [
|
|
31
31
|
"skills/",
|
|
32
32
|
"bin/",
|
|
33
|
-
"install.
|
|
33
|
+
"install.js"
|
|
34
34
|
],
|
|
35
35
|
"scripts": {
|
|
36
|
-
"postinstall": "
|
|
36
|
+
"postinstall": "node install.js"
|
|
37
37
|
}
|
|
38
38
|
}
|
package/install.sh
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
HERMES_SKILLS="${HERMES_HOME:-$HOME/.hermes}/skills"
|
|
5
|
-
TARGET="${HERMES_SKILLS}/palskills"
|
|
6
|
-
|
|
7
|
-
echo "╔══════════════════════════════════════╗"
|
|
8
|
-
echo "║ Palskills Installer ║"
|
|
9
|
-
echo "╚══════════════════════════════════════╝"
|
|
10
|
-
echo ""
|
|
11
|
-
|
|
12
|
-
# Check Hermes skills directory
|
|
13
|
-
if [ ! -d "$HERMES_SKILLS" ]; then
|
|
14
|
-
echo "📁 Creating Hermes skills directory: $HERMES_SKILLS"
|
|
15
|
-
mkdir -p "$HERMES_SKILLS"
|
|
16
|
-
fi
|
|
17
|
-
|
|
18
|
-
# Install each skill
|
|
19
|
-
SKILLS_DIR="$(cd "$(dirname "$0")" && pwd)/skills"
|
|
20
|
-
|
|
21
|
-
for skill in astralym lyleen jetdragon anubis panthalus; do
|
|
22
|
-
if [ -f "$SKILLS_DIR/$skill/SKILL.md" ]; then
|
|
23
|
-
echo "📦 Installing: $skill"
|
|
24
|
-
mkdir -p "$TARGET/$skill"
|
|
25
|
-
cp "$SKILLS_DIR/$skill/SKILL.md" "$TARGET/$skill/SKILL.md"
|
|
26
|
-
else
|
|
27
|
-
echo "⚠️ Warning: $skill/SKILL.md not found, skipping"
|
|
28
|
-
fi
|
|
29
|
-
done
|
|
30
|
-
|
|
31
|
-
echo ""
|
|
32
|
-
echo "✅ Palskills installed to: $TARGET"
|
|
33
|
-
echo ""
|
|
34
|
-
echo "Skills ready:"
|
|
35
|
-
ls -1 "$TARGET"/*/SKILL.md | while read f; do
|
|
36
|
-
dir=$(basename "$(dirname "$f")")
|
|
37
|
-
echo " • $dir"
|
|
38
|
-
done
|
|
39
|
-
echo ""
|
|
40
|
-
echo "Usage: In Hermes Agent, invoke any skill by name:"
|
|
41
|
-
echo " - 'Load the astralym skill'"
|
|
42
|
-
echo " - 'Use lyleen to check palbox'"
|
|
43
|
-
echo " - 'Run jetdragon for planning'"
|