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 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
+ ![Palskills Pipeline](assets/pipeline.jpg?v=2)
28
6
 
29
7
  ## Skills
30
8
 
@@ -70,19 +48,19 @@ palskills
70
48
  ║ AI Development Pipeline ║
71
49
  ╚══════════════════════════════════════╝
72
50
 
73
- Pilih coding agent:
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] Semua → generate all
56
+ [4] All → generate all
79
57
 
80
- Pilih [1-4]:
58
+ Choose [1-4]:
81
59
  ```
82
60
 
83
- Pilih agent, langsung generate config file dengan SOLID + SRP rules + palbox conventions.
61
+ Select an agent to instantly generate its config file with SOLID + SRP rules + palbox knowledge graph conventions.
84
62
 
85
- ### One-shot (tanpa install)
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}Pilih coding agent:${NC}`);
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} Semua → generate all`);
37
+ console.log(` ${MAGENTA}[4]${NC} All → generate all`);
38
38
  console.log('');
39
39
 
40
- const choice = await ask(` Pilih [1-4]: `);
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(' Pilihan tidak valid. Exit.'); process.exit(1); }
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 untuk load skills.\n`);
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
- - Check .palbox/ for project context before starting.
114
- - Record results to .palbox/history/ after completion.
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
- - Check .palbox/ for architecture, conventions, and past work.
149
- - Read .palbox/README.md, .palbox/architecture.md, .palbox/methods.md before coding.
150
- - After completing work, the Palskills system will record to .palbox/history/.
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 (Palbox)
220
+ ## Project Context Palbox Knowledge Graph
201
221
  Before starting any task:
202
- 1. Check if .palbox/ exists.
203
- 2. Read .palbox/README.md for project overview.
204
- 3. Read .palbox/architecture.md for folder structure and patterns.
205
- 4. Read .palbox/methods.md for conventions.
206
- 5. Search .palbox/history/ for related past work.
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 will record your session to .palbox/history/.
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.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.sh"
33
+ "install.js"
34
34
  ],
35
35
  "scripts": {
36
- "postinstall": "bash install.sh"
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'"