palskills 1.0.5 → 1.0.7

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
@@ -1,6 +1,6 @@
1
1
  # Palskills
2
2
 
3
- **AI-powered development pipeline** — a suite of 5 Hermes Agent skills that orchestrate the full development lifecycle: context retrievalplanningexecution via Codex CLI archival.
3
+ **AI-powered development pipeline** for any coding agent Codex, Cursor, Claude Code, and more. Five specialized skills orchestrate the full development lifecycle: learn the codebase plan with clarification execute with SOLID/SRPrecord to a knowledge graph.
4
4
 
5
5
  ![Palskills Pipeline](assets/pipeline.jpg?v=2)
6
6
 
@@ -8,37 +8,28 @@
8
8
 
9
9
  | Skill | Role | Key Trait |
10
10
  |-------|------|-----------|
11
- | **Astralym** | State machine orchestrator | Non-skip states, gate-keeps the flow |
12
- | **Lyleen** | Palbox reader & bootstrapper | Auto-creates `.palbox/` if missing |
13
- | **Jetdragon** | Planner | Asks until clear, generates Codex-ready prompts |
14
- | **Anubis** | Codex executor | SOLID + SRP enforced, English only |
15
- | **Panthalus** | Archivist | Records EVERY session to palbox |
11
+ | **Astralym** | Orchestrator | Runs the full pipeline, tracks progress in `state.md` |
12
+ | **Lyleen** | Knowledge Graph | Bootstraps `.palbox/` or traverses `[[wikilinks]]` for context |
13
+ | **Jetdragon** | Planner | Asks clarifying questions, generates detailed plans |
14
+ | **Anubis** | Developer | SOLID + SRP enforced, English only |
15
+ | **Panthalus** | Archivist | Records every session with bi-directional `[[wikilinks]]` |
16
16
 
17
17
  ## Prerequisites
18
18
 
19
- - [Hermes Agent](https://github.com/nousresearch/hermes-agent)
20
- - [Codex CLI](https://github.com/openai/codex) (`npm install -g @openai/codex`)
19
+ - Node.js 18+
21
20
  - Git (all work happens in git repositories)
21
+ - Any AI coding agent: [Codex CLI](https://github.com/openai/codex), [Cursor](https://cursor.com), or [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
22
22
 
23
23
  ## Install
24
24
 
25
- ### npm (recommended)
26
25
  ```bash
27
26
  npm install -g palskills
28
- # Skills auto-installed to ~/.hermes/skills/palskills/
29
27
  ```
30
28
 
31
- ### Git
32
- ```bash
33
- git clone https://github.com/faizalardhi16/palskills.git
34
- cd palskills
35
- ./install.sh
36
- ```
37
-
38
- ## Usage
29
+ ## Quick Start
39
30
 
40
- ### Interactive CLI
41
31
  ```bash
32
+ cd your-project
42
33
  palskills
43
34
  ```
44
35
 
@@ -51,36 +42,72 @@ palskills
51
42
  What do you want to do?
52
43
 
53
44
  [1] Learn Project → bootstrap .palbox/ (Lyleen)
54
- [2] Codex CLI → .codex.md
55
- [3] Cursor → .cursorrules
56
- [4] Claude Code → CLAUDE.md
45
+ [2] Codex CLI → .codex/skills/
46
+ [3] Cursor → .cursor/skills/
47
+ [4] Claude Code → .claude/skills/
57
48
  [5] All Agents → generate all configs
58
49
 
59
50
  Choose [1-5]:
60
51
  ```
61
52
 
62
- **Step 1:** Pick `[1]` to analyze the project and create a `.palbox/` knowledge graph.
63
- **Step 2:** Pick `[2-5]` to generate agent configs with SOLID + SRP + palbox conventions.
53
+ ### Step 1 Learn the project
54
+
55
+ Pick `[1]`. Lyleen scans your codebase and creates `.palbox/` — a knowledge graph with project identity, architecture map, and conventions.
56
+
57
+ ### Step 2 — Generate agent skills
58
+
59
+ Pick your agent `[2-4]`, or `[5]` for all. Each agent gets 5 skill files ready to use.
60
+
61
+ ## How to Develop with Palskills
62
+
63
+ Once skills are generated, open your AI coding agent and start a prompt with a skill name:
64
+
65
+ ### Full Pipeline (recommended)
64
66
 
65
- ### One-shot (without installing)
66
- ```bash
67
- npx palskills
67
+ ```
68
+ Astralym: build a PDF export feature for the reports module
69
+ ```
70
+
71
+ Astralym runs all 5 steps: learns the codebase → plans with your input → executes code → records everything. Tracks progress in `.palbox/state.md` with checkboxes — resumable if interrupted.
72
+
73
+ ### Individual Skills
74
+
75
+ | Prompt | What happens |
76
+ |--------|-------------|
77
+ | `Lyleen: learn the auth module` | Reads or bootstraps `.palbox/`, returns relevant context |
78
+ | `Jetdragon: plan a forgot-password feature` | Creates `.palbox/plans/` plan, asks clarifying questions. Say **"Gas"** when ready |
79
+ | `Anubis: implement the approved plan` | Executes the plan with SOLID + SRP, all code in English |
80
+ | `Panthalus: record this session` | Saves to `.palbox/history/` with bi-directional `[[wikilinks]]` |
81
+
82
+ ### Flow
83
+
84
+ ```
85
+ Lyleen (context) → Jetdragon (plan) → "Gas" → Anubis (code) → Panthalus (record)
68
86
  ```
69
87
 
70
88
  ## Palbox
71
89
 
72
- Palskills creates a `.palbox/` second brain in every project:
90
+ The `.palbox/` knowledge graph grows with every session:
73
91
 
74
92
  ```
75
93
  .palbox/
76
- ├── README.md # Project identity & tech stack
77
- ├── architecture.md # Folder map & design patterns
78
- ├── methods.md # Conventions & standards
79
- ├── flows/ # Feature workflow docs
80
- ├── plans/ # Active plans (Jetdragon)
81
- └── history/ # Past executions (Panthalus)
94
+ ├── state.md # Pipeline progress tracker
95
+ ├── README.md # Project identity & tech stack
96
+ ├── architecture.md # Folder map & design patterns
97
+ ├── methods.md # Conventions & standards
98
+ ├── flows/ # Feature workflow docs
99
+ ├── plans/ # Active plans
100
+ └── history/ # Past sessions with [[wikilinks]]
82
101
  ```
83
102
 
103
+ ## Supported Agents
104
+
105
+ | Agent | Skills Directory | Config Format |
106
+ |-------|-----------------|---------------|
107
+ | Codex CLI | `.codex/skills/` | Markdown skill files |
108
+ | Cursor | `.cursor/skills/` | Markdown skill files |
109
+ | Claude Code | `.claude/skills/` | Markdown skill files |
110
+
84
111
  ## License
85
112
 
86
113
  MIT
package/bin/palskills.js CHANGED
@@ -32,9 +32,9 @@ async function main() {
32
32
  console.log(` ${BOLD}What do you want to do?${NC}`);
33
33
  console.log('');
34
34
  console.log(` ${MAGENTA}[1]${NC} Learn Project → bootstrap .palbox/ (Lyleen)`);
35
- console.log(` ${MAGENTA}[2]${NC} Codex CLI → .codex.md`);
36
- console.log(` ${MAGENTA}[3]${NC} Cursor → .cursorrules`);
37
- console.log(` ${MAGENTA}[4]${NC} Claude Code → CLAUDE.md`);
35
+ console.log(` ${MAGENTA}[2]${NC} Codex CLI → .codex/skills/`);
36
+ console.log(` ${MAGENTA}[3]${NC} Cursor → .cursor/skills/`);
37
+ console.log(` ${MAGENTA}[4]${NC} Claude Code → .claude/skills/`);
38
38
  console.log(` ${MAGENTA}[5]${NC} All Agents → generate all configs`);
39
39
  console.log('');
40
40
 
@@ -239,181 +239,186 @@ ${gitContributors ? `\n**Top Contributors:**\n\`\`\`\n${gitContributors}\n\`\`\`
239
239
 
240
240
  function generate(agent) {
241
241
  const cwd = process.cwd();
242
+ const skillNames = ['lyleen', 'jetdragon', 'anubis', 'panthalus', 'astralym'];
242
243
 
243
- if (agent === 'codex') {
244
- const file = path.join(cwd, '.codex.md');
245
- fs.writeFileSync(file, codexRules());
246
- console.log(` ${GREEN}✓${NC} .codex.md`);
247
- }
244
+ let dir;
245
+ if (agent === 'codex') dir = path.join(cwd, '.codex', 'skills');
246
+ else if (agent === 'cursor') dir = path.join(cwd, '.cursor', 'skills');
247
+ else if (agent === 'claude') dir = path.join(cwd, '.claude', 'skills');
248
248
 
249
- if (agent === 'cursor') {
250
- const file = path.join(cwd, '.cursorrules');
251
- fs.writeFileSync(file, cursorRules());
252
- console.log(` ${GREEN}✓${NC} .cursorrules`);
253
- }
249
+ fs.mkdirSync(dir, { recursive: true });
254
250
 
255
- if (agent === 'claude') {
256
- const file = path.join(cwd, 'CLAUDE.md');
257
- fs.writeFileSync(file, claudeRules());
258
- console.log(` ${GREEN}✓${NC} CLAUDE.md`);
251
+ for (const name of skillNames) {
252
+ const file = path.join(dir, `${name}.md`);
253
+ fs.writeFileSync(file, skillContent(agent, name));
254
+ console.log(` ${GREEN}✓${NC} ${dir}/${name}.md`);
259
255
  }
260
256
  }
261
257
 
262
- function codexRules() {
263
- return palskillsAgentConfig('Codex');
264
- }
265
-
266
- function cursorRules() {
267
- return palskillsAgentConfig('Cursor');
268
- }
258
+ function skillContent(agent, skill) {
259
+ const skills = {
260
+ lyleen: `# Lyleen — Palbox Knowledge Graph
261
+ **Agent:** ${agent === 'codex' ? 'Codex' : agent === 'cursor' ? 'Cursor' : 'Claude Code'}
262
+
263
+ ## Role
264
+ Read and bootstrap the project knowledge graph (.palbox/).
265
+
266
+ ## If .palbox/ does NOT exist — BOOTSTRAP:
267
+ 1. Scan project: read package.json/requirements.txt/go.mod, list dirs, check git log, find tests
268
+ 2. Create .palbox/README.md — project name, tech stack, goals, [[links]]
269
+ 3. Create .palbox/architecture.md — folder tree, design patterns, key modules
270
+ 4. Create .palbox/methods.md — conventions, testing, git workflow
271
+ 5. Create .palbox/flows/, .palbox/history/, .palbox/plans/
272
+ 6. Report: "Palbox bootstrapped. N files. Detected: [stack]."
273
+
274
+ ## If .palbox/ EXISTS — RETRIEVE:
275
+ 1. Read README.md, architecture.md, methods.md
276
+ 2. Search flows/ and history/ for user keywords
277
+ 3. Extract [[wikilinks]], follow 1-2 hops
278
+ 4. Return context subgraph: seeds → 1-hop → 2-hop → conventions
279
+ `,
280
+ jetdragon: `# Jetdragon — Planner
281
+ **Agent:** ${agent === 'codex' ? 'Codex' : agent === 'cursor' ? 'Cursor' : 'Claude Code'}
282
+
283
+ ## Role
284
+ Create detailed implementation plans. Ask questions until clear.
285
+
286
+ ## Process
287
+ 1. Gather palbox context (read core docs, search related history)
288
+ 2. Generate plan → .palbox/plans/YYYY-MM-DD-feature.md with [[wikilinks]]
289
+ 3. If ambiguous, ASK: scope, design, edge cases, integration, priority
290
+ 4. Iterate until user says "Gas", "Go", "Execute"
291
+ 5. Finalize as APPROVED, hand off to Anubis
292
+
293
+ ## Plan Template
294
+ - Overview, Scope (in/out), Tasks (ordered, with files + verification)
295
+ - Architecture notes, SOLID focus, Risks & Mitigations
296
+ - All references use [[wikilinks]] to .palbox/ entries
297
+ `,
298
+ anubis: `# Anubis — Developer
299
+ **Agent:** ${agent === 'codex' ? 'Codex' : agent === 'cursor' ? 'Cursor' : 'Claude Code'}
300
+
301
+ ## Role
302
+ Execute approved plans. SOLID + SRP enforced. English only.
303
+
304
+ ## SOLID (Strict)
305
+ - **S**: One class, one reason to change
306
+ - **O**: Extend, never modify existing
307
+ - **L**: Subtypes fully substitutable
308
+ - **I**: Small focused interfaces
309
+ - **D**: Depend on abstractions, inject deps
310
+
311
+ ## SRP Separation
312
+ - Repository → data access ONLY
313
+ - Service → business logic ONLY
314
+ - Validator → validation rules ONLY
315
+ - Model → data structures ONLY
316
+
317
+ ## Rules
318
+ - ALL code, comments, docstrings, commits in English
319
+ - One commit per logical change (conventional commits)
320
+ - Read existing files before modifying
321
+ - Write tests if project has testing patterns
322
+ `,
323
+ panthalus: `# Panthalus — Archivist
324
+ **Agent:** ${agent === 'codex' ? 'Codex' : agent === 'cursor' ? 'Cursor' : 'Claude Code'}
325
+
326
+ ## Role
327
+ Record sessions to .palbox/ with bi-directional [[wikilinks]].
328
+
329
+ ## Process
330
+ 1. Collect: plan, git diff, commits, decisions, lessons
331
+ 2. Create .palbox/history/YYYY-MM-DD-feature.md with [[wikilinks]]
332
+ 3. For EVERY link, add backlink to the target file ("Related Sessions")
333
+ 4. Update core docs (architecture/methods) only if structure changed
334
+ 5. Report graph stats: nodes, edges, enriched
335
+
336
+ ## History Entry Template
337
+ - Links ([[flows/]], [[architecture]], [[history/]])
338
+ - Original prompt, Plan, Execution (files + commits)
339
+ - Key Decisions table, Lessons Learned (pitfalls, discoveries)
340
+ - Backlinks section
341
+ `,
342
+ astralym: `# Astralym — Orchestrator
343
+ **Agent:** ${agent === 'codex' ? 'Codex' : agent === 'cursor' ? 'Cursor' : 'Claude Code'}
344
+
345
+ ## Role
346
+ Run the full development pipeline. Track every step in .palbox/state.md.
347
+
348
+ ## Pipeline
349
+ 1. **CHECK_GRAPH** → Lyleen: bootstrap or retrieve context
350
+ 2. **PLANNING** → Jetdragon: create plan, ask questions, wait for "Gas"
351
+ 3. **DEVELOPING** → Anubis: execute with SOLID + SRP
352
+ 4. **RECORDING** → Panthalus: record with backlinks
353
+ 5. **DONE** → Summary with graph stats
354
+
355
+ ## CRITICAL: state.md
356
+
357
+ ON LOAD: Create or read .palbox/state.md. This file tracks pipeline progress with checkboxes.
358
+
359
+ ### state.md Template
360
+ Create this file IMMEDIATELY when Astralym is activated:
361
+
362
+ \`\`\`markdown
363
+ # Astralym Pipeline State
364
+ **Feature:** [extract from user prompt]
365
+ **Started:** [current datetime]
366
+ **Last Updated:** [current datetime]
367
+
368
+ ## Progress
369
+ - [ ] CHECK_GRAPH — Lyleen: bootstrap or retrieve context
370
+ - [ ] PLANNING — Jetdragon: create plan, ask questions
371
+ - [ ] DEVELOPING — Anubis: execute with SOLID + SRP
372
+ - [ ] RECORDING — Panthalus: record with backlinks
373
+ - [ ] DONE — Report summary
374
+
375
+ ## Plan
376
+ pending
377
+
378
+ ## Context
379
+ pending
380
+ \`\`\`
269
381
 
270
- function claudeRules() {
271
- return palskillsAgentConfig('Claude Code');
272
- }
382
+ ### Rules for state.md
383
+ 1. **Create BEFORE running any step.** The file must exist from the start.
384
+ 2. **Checkmark [x] each step IMMEDIATELY after completion.** Do not batch.
385
+ 3. **Add notes after each step:**
386
+ - CHECK_GRAPH: "Retrieved [N] relevant nodes" or "Bootstrapped palbox"
387
+ - PLANNING: Link to plan file: [[plans/YYYY-MM-DD-feature]]
388
+ - DEVELOPING: "Implemented: [files changed], [N] commits"
389
+ - RECORDING: Link to history: [[history/YYYY-MM-DD-feature]]
390
+ - DONE: "Completed at [datetime]. [N] files, [M] commits."
391
+ 4. **If a step fails or is interrupted,** mark it with [!] and note why.
392
+ 5. **Update "Last Updated"** every time you touch the file.
393
+ 6. **On resume:** Read state.md first. Skip completed steps. Continue from first unchecked.
394
+
395
+ ### Example After Completion
396
+ \`\`\`markdown
397
+ # Astralym Pipeline State
398
+ **Feature:** Export Laporan PDF
399
+ **Started:** 2026-07-19 16:30
400
+ **Last Updated:** 2026-07-19 17:15
401
+
402
+ ## Progress
403
+ - [x] CHECK_GRAPH — Lyleen: Retrieved 3 nodes ([[flows/export]], [[architecture]], [[methods]])
404
+ - [x] PLANNING — Jetdragon: [[plans/2026-07-19-export-pdf]]
405
+ - [x] DEVELOPING — Anubis: src/export/pdf.py, src/export/templates/, 4 commits
406
+ - [x] RECORDING — Panthalus: [[history/2026-07-19-export-pdf]]
407
+ - [x] DONE — Completed at 2026-07-19 17:15. 3 files, 4 commits.
408
+
409
+ ## Plan
410
+ [[plans/2026-07-19-export-pdf]]
411
+
412
+ ## Context
413
+ - [[flows/export]] — existing export pipeline
414
+ - [[architecture]] — module structure
415
+ - [[methods]] — testing conventions
416
+ \`\`\`
273
417
 
274
- function palskillsAgentConfig(agentName) {
275
- return `# Palskills Multi-Mode AI Development System
276
- # Generated for ${agentName}
277
- #
278
- # HOW TO USE: Start your prompt with the skill name.
279
- # "Lyleen: learn the ftz export module"
280
- # "Jetdragon: plan a forgot-password feature"
281
- # "Anubis: implement the approved plan"
282
- # "Panthalus: record this session"
283
- #
284
- # Or let Astralym orchestrate the full flow:
285
- # "Astralym: build a user dashboard"
286
-
287
- ---
288
-
289
- ## SKILL MODES
290
-
291
- You are an AI coding agent with **5 selectable skill modes**. When the user starts a prompt with a skill name followed by a colon, activate that mode immediately.
292
-
293
- ---
294
-
295
- ### LYLEEN — Palbox Knowledge Graph
296
- **Trigger:** Prompt starts with "Lyleen:" or "lyleen:"
297
- **Role:** Read and bootstrap the project knowledge graph.
298
-
299
- #### If .palbox/ does NOT exist — BOOTSTRAP:
300
- 1. Scan the project structure:
301
- - Read package.json / requirements.txt / go.mod / Cargo.toml to detect tech stack
302
- - List top-level directories (skip .git, node_modules, __pycache__)
303
- - Read existing README.md if present
304
- - Check git log for contributors and recent activity
305
- - Find testing patterns (files matching *test*, *spec*)
306
- 2. Create .palbox/ with this structure:
307
- - .palbox/README.md — project name, tech stack, goals, quick start, knowledge graph links
308
- - .palbox/architecture.md — folder structure tree, design patterns, key modules table, data flow
309
- - .palbox/methods.md — coding conventions, testing strategy, git workflow, code review standards
310
- 3. Create subdirectories: flows/, history/, plans/
311
- 4. Every .md file MUST include wikilinks ([[other-file]]) to connect the graph
312
- 5. Report: "Palbox bootstrapped. N files analyzed. Detected: [tech stack]."
313
-
314
- #### If .palbox/ EXISTS — CONTEXT RETRIEVAL:
315
- 1. Read .palbox/README.md, .palbox/architecture.md, .palbox/methods.md
316
- 2. Search .palbox/flows/ and .palbox/history/ for keywords in the user query
317
- 3. Extract all [[wikilinks]] from matching files. Follow them 1-2 hops deep.
318
- 4. Return a "Context Subgraph" summary:
319
- - Seed nodes (direct matches)
320
- - 1-hop neighbors (linked context)
321
- - 2-hop neighbors (extended context)
322
- - Relevant conventions and past decisions
323
- 5. If nothing relevant found, say so clearly.
324
-
325
- ---
326
-
327
- ### JETDRAGON — Planner
328
- **Trigger:** Prompt starts with "Jetdragon:" or "jetdragon:"
329
- **Role:** Create detailed, actionable implementation plans. Ask questions until the plan is crystal clear.
330
-
331
- 1. First, act like Lyleen to gather palbox context (read core docs, search for related work)
332
- 2. Generate a plan saved to .palbox/plans/YYYY-MM-DD-feature-name.md:
333
- - Overview (2-3 sentences)
334
- - Scope: in scope / out of scope
335
- - Tasks ordered by dependency, each with: what, files to touch, verification steps
336
- - Architecture notes: patterns to use, SOLID focus
337
- - Risks and mitigations
338
- - Use [[wikilinks]] to reference .palbox/ entries
339
- 3. If ANYTHING is ambiguous, ASK the user:
340
- - Scope: "Should this also handle X?"
341
- - Design: "Class-based or functional?"
342
- - Edge cases: "What happens when input is empty?"
343
- - Integration: "Does this touch the existing auth module?"
344
- - Priority: "Which task first?"
345
- 4. Iterate: user responds → update plan → ask more → repeat
346
- 5. When the user says "Gas", "Go", "Execute", or "Approved":
347
- - Update status to APPROVED
348
- - Output: "Plan approved. Ready for Anubis."
349
- - Include the full plan for the next step
350
-
351
- ---
352
-
353
- ### ANUBIS — Developer
354
- **Trigger:** Prompt starts with "Anubis:" or "anubis:"
355
- **Role:** Execute an approved plan following SOLID + SRP. All code in English.
356
-
357
- 1. Read the approved plan from .palbox/plans/ or from the provided context
358
- 2. Execute task by task, in order:
359
- - Read existing files before modifying
360
- - Write code following SOLID + SRP
361
- - Write tests if the project has testing patterns
362
- - Verify acceptance criteria
363
- 3. **SOLID (strict):**
364
- - Single Responsibility: one class, one reason to change
365
- - Open/Closed: extend, never modify existing
366
- - Liskov Substitution: subtypes fully substitutable
367
- - Interface Segregation: small focused interfaces
368
- - Dependency Inversion: depend on abstractions, inject deps
369
- 4. **SRP Separation:**
370
- - Repository → data access ONLY
371
- - Service → business logic ONLY
372
- - Validator → validation rules ONLY
373
- - Model → data structures ONLY
374
- - If a class mixes these, REFACTOR immediately
375
- 5. **Language:** ALL code, comments, docstrings, variable names, and commit messages MUST be in English
376
- 6. **Git:** one commit per logical change. Conventional commits format
377
- 7. After all tasks complete, output a summary: files changed, commits made, verification results
378
-
379
- ---
380
-
381
- ### PANTHALUS — Archivist
382
- **Trigger:** Prompt starts with "Panthalus:" or "panthalus:"
383
- **Role:** Record the session to the .palbox/ knowledge graph with bi-directional links.
384
-
385
- 1. Collect artifacts: the plan, git diff summary, commit messages, decisions made
386
- 2. Create .palbox/history/YYYY-MM-DD-feature-name.md:
387
- - Links section with [[wikilinks]] to related entries (flows, architecture, past history)
388
- - Original prompt
389
- - Plan (full, not summarized)
390
- - Execution: files changed, commits
391
- - Key decisions table
392
- - Lessons learned (pitfalls, discoveries, patterns)
393
- 3. **Create backlinks:** For EVERY [[wikilink]] in the history entry, go to that file and add a reference back:
394
- - Add "## Related Sessions" section if it does not exist
395
- - Append "- [[history/YYYY-MM-DD-feature]] — [one-line summary]"
396
- 4. Update core docs only if structural knowledge changed (new modules, new conventions)
397
- 5. Report graph stats: new node, edges created, nodes enriched, total nodes/edges
398
-
399
- ---
400
-
401
- ### ASTRALYM — Orchestrator
402
- **Trigger:** Prompt starts with "Astralym:" or "astralym:"
403
- **Role:** Run the full development pipeline automatically.
404
-
405
- 1. **CHECK_GRAPH** — Act as Lyleen: bootstrap .palbox/ if missing, or retrieve context subgraph
406
- 2. **PLANNING** — Act as Jetdragon: create plan, ask clarifying questions, wait for "Gas"
407
- 3. **DEVELOPING** — Act as Anubis: execute the approved plan with SOLID + SRP
408
- 4. **RECORDING** — Act as Panthalus: record everything to .palbox/ with backlinks
409
- 5. **DONE** — Report summary with graph stats
410
-
411
- ---
412
-
413
- ## DEFAULT MODE
414
-
415
- When no specific skill is triggered, act as **Anubis** by default — write code following SOLID + SRP, all output in English. Before starting any task, quickly check .palbox/ for relevant context (like Lyleen, but minimal — 30 seconds max).
416
- `;
418
+ ## Usage
419
+ User says "Astralym: build feature X" create state.md → run pipeline step by step → checkmark progress.`
420
+ };
421
+ return skills[skill] || '';
417
422
  }
418
423
 
419
424
  function installSkills() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "palskills",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "AI-powered development pipeline — 5 Hermes Agent skills orchestrated as a knowledge graph",
5
5
  "keywords": [
6
6
  "hermes-agent",
@@ -86,6 +86,45 @@ Astralym is the central orchestrator of the palskills development system. It rou
86
86
  | `RECORDING` | Panthalus | Create history node → add `[[wikilinks]]` → create backlinks → enrich graph |
87
87
  | `DONE` | Astralym | Report summary + graph stats; return to IDLE |
88
88
 
89
+ ## CRITICAL: state.md
90
+
91
+ ON LOAD: Astralym MUST create or read `.palbox/state.md`. This file tracks pipeline progress with checkboxes and makes the state machine visible, resumable, and auditable.
92
+
93
+ ### state.md Template
94
+
95
+ ```markdown
96
+ # Astralym Pipeline State
97
+ **Feature:** [extract from user prompt]
98
+ **Started:** [current datetime]
99
+ **Last Updated:** [current datetime]
100
+
101
+ ## Progress
102
+ - [ ] CHECK_GRAPH — Lyleen: bootstrap or retrieve context
103
+ - [ ] PLANNING — Jetdragon: create plan, ask questions
104
+ - [ ] DEVELOPING — Anubis → Codex: execute with SOLID + SRP
105
+ - [ ] RECORDING — Panthalus: record with backlinks
106
+ - [ ] DONE — Report summary
107
+
108
+ ## Plan
109
+ pending
110
+
111
+ ## Context
112
+ pending
113
+ ```
114
+
115
+ ### Rules for state.md
116
+ 1. **Create BEFORE running any step.** The file must exist from the start.
117
+ 2. **Checkmark `[x]` each step IMMEDIATELY after completion.** Do not batch.
118
+ 3. **Add notes after each step:**
119
+ - CHECK_GRAPH: "Retrieved [N] relevant nodes" or "Bootstrapped palbox with [N] files"
120
+ - PLANNING: Link to plan: `[[plans/YYYY-MM-DD-feature]]`
121
+ - DEVELOPING: "Implemented: [files changed], [N] commits"
122
+ - RECORDING: Link to history: `[[history/YYYY-MM-DD-feature]]`
123
+ - DONE: "Completed at [datetime]. [N] files, [M] commits."
124
+ 4. **If a step fails or is interrupted,** mark it with `[!]` and note why.
125
+ 5. **Update "Last Updated"** every time you touch the file.
126
+ 6. **On resume:** Read state.md first. Skip `[x]` completed steps. Continue from first `[ ]`.
127
+
89
128
  ## Palbox Knowledge Graph Structure
90
129
 
91
130
  ```
@@ -101,6 +140,30 @@ Astralym is the central orchestrator of the palskills development system. It rou
101
140
  └── YYYY-MM-DD-*.md
102
141
  ```
103
142
 
143
+ ## Usage Modes
144
+
145
+ Palskills works in **two environments**, not just Hermes:
146
+
147
+ ### A. Hermes (native)
148
+ ```
149
+ "Load astralym, build a user dashboard"
150
+ ```
151
+ Astralym orchestrates: Lyleen → Jetdragon → Anubis → Panthalus, enforcing state transitions.
152
+
153
+ ### B. Any coding agent (via CLI-generated configs)
154
+ ```bash
155
+ npm i -g palskills
156
+ palskills # generates .codex.md / .cursorrules / CLAUDE.md
157
+ ```
158
+ Then in Codex, Cursor, or Claude Code:
159
+ ```
160
+ Lyleen: learn the auth module
161
+ Astralym: build a forgot-password feature
162
+ ```
163
+ The agent reads the config and follows the skill's step-by-step instructions. Full 5-mode system embedded. See `references/cli-integration.md` for details.
164
+
165
+ **Design rule:** every agent config MUST contain the complete multi-mode skill system, not just static rules. The user explicitly rejected rules-only configs.
166
+
104
167
  ## Rules
105
168
 
106
169
  1. **Never skip states** — every prompt flows through the full pipeline
@@ -109,3 +172,7 @@ Astralym is the central orchestrator of the palskills development system. It rou
109
172
  4. **Recording is mandatory** — every session enriches the graph
110
173
  5. **Links over repetition** — use `[[wikilinks]]` instead of duplicating content
111
174
  6. **Bidirectional links** — every edge should have a backlink (Panthalus enforces this)
175
+
176
+ ## See Also
177
+
178
+ - `references/cli-integration.md` — How the `palskills` CLI generates agent configs (`.codex.md`, `.cursorrules`, `CLAUDE.md`) that integrate with this pipeline