agentic-skill-mill 1.0.10 → 1.0.11

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
@@ -8,16 +8,16 @@ Forge and refine agent skill projects. The skill teaches agents how to work with
8
8
  npm install
9
9
  npm run build
10
10
  npm run compile
11
- bash install-local.sh # local repo setup (auto-detect tools)
12
- bash install-local.sh --all # local repo setup for all tools
11
+ node install.js # local repo setup (auto-detect tools)
12
+ node install.js --all # local repo setup for all tools
13
13
  ```
14
14
 
15
15
  ```powershell
16
16
  npm install
17
17
  npm run build
18
18
  npm run compile
19
- powershell -ExecutionPolicy Bypass -File .\install-local.ps1
20
- powershell -ExecutionPolicy Bypass -File .\install-local.ps1 --all
19
+ node install.js
20
+ node install.js --all
21
21
  ```
22
22
 
23
23
  ## One-Line Remote Install (No Clone)
@@ -40,7 +40,7 @@ Skills (what to do) CLI Companion (tools to do it with)
40
40
  skill/fragments/*.md src/core/*.ts
41
41
  | |
42
42
  v v
43
- compiled/ (7 IDE formats) dist/ (npm link -> global CLI)
43
+ compiled/ (5 IDE formats) dist/ (npm link -> global CLI)
44
44
  | |
45
45
  +---------> Agent <----------+
46
46
  ```
@@ -92,18 +92,14 @@ src/
92
92
  compiled/ # Machine-generated, one subdir per IDE target
93
93
  contributions/ # Field observations from real runs
94
94
  site/ # GitHub Pages site (agenticskillmill.com)
95
- install-local.sh # One-command local setup: build CLI + install skills
96
- install-local.ps1 # One-command local setup for Windows PowerShell
97
- install.sh # One-command remote bootstrap: install package + skills
98
- install.ps1 # One-command remote bootstrap for Windows PowerShell
95
+ install.js # One-command local setup: build CLI + install skills
99
96
  ```
100
97
 
101
98
  ## How to Add a Skill
102
99
 
103
100
  1. Create the source file at `skill/skills/<name>/<name>.md` with YAML frontmatter
104
101
  2. Register it in `skill/build/manifest.json`
105
- 3. Add the skill name to the `SKILLS` array in `install-local.sh` and `install-local.ps1`
106
- 4. Compile and validate: `npm run compile && npm run compile:validate`
102
+ 3. Compile and validate: `npm run compile && npm run compile:validate`
107
103
 
108
104
  ## How to Add a Fragment
109
105
 
@@ -165,7 +161,7 @@ Workflow behavior:
165
161
 
166
162
  ## Ecosystem
167
163
 
168
- Agentic Skill Mill is the parent project that defines the skill-system-template architecture. The following projects are built on the same fragment-composition, 7-target compilation, and companion-CLI pattern:
164
+ Agentic Skill Mill is the parent project that defines the skill-system-template architecture. The following projects are built on the same fragment-composition, 5-target compilation, and companion-CLI pattern:
169
165
 
170
166
  | Project | What it does | Site | Repo |
171
167
  |---------|-------------|------|------|
@@ -20,7 +20,7 @@ Skills (what to do) CLI Companion (tools to do it with)
20
20
  skill/fragments/*.md src/core/*.ts
21
21
  | |
22
22
  v v
23
- compiled/ (7 IDE formats) dist/ (npm -> npx or global CLI)
23
+ compiled/ (5 IDE formats) dist/ (npm -> npx or global CLI)
24
24
  | |
25
25
  +---------> Agent <----------+
26
26
  ^
@@ -45,9 +45,9 @@ Skills (what to do) CLI Companion (tools to do it with)
45
45
  - `src/errors/types.ts` — Typed error hierarchy (AppError, NotFoundError, etc.)
46
46
  - `src/cache/cache-manager.ts` — Two-tier cache (memory + disk) with TTL
47
47
 
48
- **Local installers:** Every project ships `install.sh` (bash) and `install.ps1` (PowerShell). Both support the same flags and produce identical installed state.
48
+ **Local installers:** Every project ships a single cross-platform `install.js` (Node.js).
49
49
 
50
- **The local installer** (`install-local.sh`) builds the CLI, compiles skills, and copies compiled outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.) with marker-based stale file cleanup. The bootstrap installer is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and is also bundled in the npm package as `install.sh`. It installs the npm utility first, then delegates to `install-local.sh --skills-only`. Local installer functions use `set -e` for fail-fast behavior. Any function that uses an early-exit guard (`[[ -d ... ]] || return`, `[[ -z ... ]] && return`) **must** use `return 0`, never bare `return`. Bare `return` inherits the exit code of the last command, which for a failed conditional test is 1 -- and `set -e` treats that as a script-terminating failure with no error message.
50
+ **The installer** (`install.js`) builds the CLI, compiles skills, and copies compiled outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.) with marker-based stale file cleanup. The bootstrap installer is hosted at `https://agenticskillmill.com/install.sh` and bundled in the npm package. It installs the npm utility first, then delegates to `node install.js --skills-only`.
51
51
 
52
52
  ### Key files to modify when augmenting a project
53
53
 
@@ -55,8 +55,8 @@ Skills (what to do) CLI Companion (tools to do it with)
55
55
  |------|---------|
56
56
  | Add a CLI command | `src/core/<name>.ts`, `src/cli/commands/<name>.ts`, `src/cli/index.ts`, `src/index.ts` |
57
57
  | Add a fragment | `skill/fragments/<category>/<name>.md`, `skill/build/manifest.json`, skill source |
58
- | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json`, `install-local.sh` SKILLS array |
59
- | Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
58
+ | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json` |
59
+ | Change installer behavior | `install.js`, then copy to `site/install.sh` and `site/install.ps1` |
60
60
  | Update the landing page | `site/index.html`, `site/style.css` |
61
61
  | Change CI secrets or workflow | `.github/workflows/release.yml` or `deploy-pages.yml`, repo settings |
62
62
  | Rename the project | See the rename workflow |
@@ -78,21 +78,20 @@ There are multiple ways users consume it:
78
78
  | Remote install (bash) | `bash <(curl -fsSL https://<domain>/install.sh)` | End users on Linux/macOS |
79
79
  | Remote install (PowerShell) | `irm https://<domain>/install.ps1 \| iex` | End users on Windows |
80
80
  | npx (no install) | `npx --yes agentic-skill-mill@latest <command>` | Users running CLI commands without global install |
81
- | Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
81
+ | Local development | `git clone` then `node install.js --all` | Contributors working on the project itself |
82
82
 
83
- ### Two installer scripts
83
+ ### One unified installer
84
84
 
85
- **`install-local.sh`** is the full local installer. It runs from a cloned repo and handles:
86
- - `npm install` + `npm run build` + `npm run compile`
87
- - `npm link` to make `skillmill` available globally
85
+ **`install.js`** is a single cross-platform Node.js installer that replaces the old shell/PowerShell split:
86
+ - Runs `npm install` + `npm run build` + `npm run compile` + `npm link`
88
87
  - Copies compiled skill outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.)
89
88
  - Supports `--skills-only` (skip build, just copy), `--uninstall`, `--compile-only`, and per-tool flags (`--cursor`, `--claude`, etc.)
90
89
  - Auto-detects installed tools when no flags are provided
91
90
 
92
- **`install.sh`** is the remote bootstrap installer. It is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and bundled in the npm package. It:
91
+ **`site/install.sh`** is the remote bootstrap installer. It is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and bundled in the npm package. It:
93
92
  1. Runs `npm install -g agentic-skill-mill@latest`
94
- 2. Locates `install-local.sh` inside the globally installed package
95
- 3. Delegates to `install-local.sh --skills-only` with the user's flags
93
+ 2. Locates `install.js` inside the globally installed package
94
+ 3. Delegates to `node install.js --skills-only` with the user's flags
96
95
 
97
96
  Both scripts respect environment overrides `SKILLMILL_PACKAGE_NAME` and `SKILLMILL_PACKAGE_VERSION`.
98
97
 
@@ -103,11 +102,10 @@ The `files` array in `package.json` controls what ships to npm:
103
102
  | Entry | Purpose |
104
103
  |-------|---------|
105
104
  | `dist` | Compiled TypeScript CLI and library |
106
- | `compiled` | Pre-compiled skill outputs for all 7 IDE targets |
105
+ | `compiled` | Pre-compiled skill outputs for all 5 IDE targets |
107
106
  | `skill` | Skill sources, fragments, compiler, and manifest |
108
107
  | `README.md` | Package documentation |
109
- | `install.sh` | Bootstrap installer (bundled for remote delegation) |
110
- | `install-local.sh` | Full local installer (used by bootstrap in --skills-only mode) |
108
+ | `install.js` | Unified cross-platform installer |
111
109
 
112
110
  The `bin` field maps `skillmill` to `dist/cli/index.js`, so `npx agentic-skill-mill` and global install both expose the `skillmill` command.
113
111
 
@@ -143,9 +141,9 @@ When updating the bootstrap installer logic, edit `install.sh` and `install.ps1`
143
141
 
144
142
  | Change | Files to update |
145
143
  |--------|----------------|
146
- | Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
147
- | Change package name | `package.json` name + bin, `install.sh` default, `site/install.sh` default, `install-local.sh` PROJECT_NAME + CLI_BIN_NAME + MANAGED_MARKER, `site/index.html`, README |
148
- | Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
144
+ | Add a new skill | `skill/build/manifest.json` |
145
+ | Change package name | `package.json` name + bin, `site/install.sh` default, `install.js` PROJECT_NAME + CLI_BIN_NAME, `site/index.html`, README |
146
+ | Change bootstrap behavior | `install.js`, then copy to `site/install.sh` and `site/install.ps1` |
149
147
  | Add a GitHub Actions secret | Repo settings, document in README |
150
148
  | Update domain | `site/CNAME`, README, skill source, architecture fragment |
151
149
 
@@ -420,8 +418,7 @@ Direct content or more includes.
420
418
  Then register it:
421
419
 
422
420
  1. Add the skill entry to `skill/build/manifest.json` with its source path and fragment dependencies
423
- 2. Add the skill name to the `SKILLS` array in `install-local.sh`
424
- 3. Compile: `npm run compile`
421
+ 2. Compile: `npm run compile`
425
422
 
426
423
  ### Step 8: If Renaming the Project
427
424
 
@@ -449,9 +446,9 @@ When the project, skill, or CLI needs a new name, update all touchpoints in one
449
446
 
450
447
  4. **Compiler marker** (`skill/build/compile.mjs`) -- update the `MANAGED_BY` constant
451
448
 
452
- 5. **Local installer** (`install-local.sh`) -- update `PROJECT_NAME`, `CLI_BIN_NAME`, `MANAGED_MARKER`, `SKILLS` array
449
+ 5. **Installer** (`install.js`) -- update `PROJECT_NAME`, `CLI_BIN_NAME`, constants
453
450
 
454
- 6. **Bootstrap installer** (`install.sh`) -- update the default `PACKAGE_NAME`, then copy to `site/install.sh`
451
+ 6. **Bootstrap installer** (`site/install.sh`) -- update the default `PACKAGE_NAME`
455
452
 
456
453
  7. **Package metadata** (`package.json`) -- update `name`, `bin` key, and `description`
457
454
 
@@ -489,7 +486,7 @@ After any change, run the full verification sequence:
489
486
 
490
487
  ```bash
491
488
  npm run build # TypeScript CLI compiles cleanly
492
- npm run compile # Skills compile to all 7 IDE targets
489
+ npm run compile # Skills compile to 5 IDE targets
493
490
  npm run compile:validate # Cross-validates manifest vs source includes
494
491
  npx --yes agentic-skill-mill@latest --help # CLI command surface works via npx
495
492
  ```
@@ -20,7 +20,7 @@ Skills (what to do) CLI Companion (tools to do it with)
20
20
  skill/fragments/*.md src/core/*.ts
21
21
  | |
22
22
  v v
23
- compiled/ (7 IDE formats) dist/ (npm -> npx or global CLI)
23
+ compiled/ (5 IDE formats) dist/ (npm -> npx or global CLI)
24
24
  | |
25
25
  +---------> Agent <----------+
26
26
  ^
@@ -45,9 +45,9 @@ Skills (what to do) CLI Companion (tools to do it with)
45
45
  - `src/errors/types.ts` — Typed error hierarchy (AppError, NotFoundError, etc.)
46
46
  - `src/cache/cache-manager.ts` — Two-tier cache (memory + disk) with TTL
47
47
 
48
- **Local installers:** Every project ships `install.sh` (bash) and `install.ps1` (PowerShell). Both support the same flags and produce identical installed state.
48
+ **Local installers:** Every project ships a single cross-platform `install.js` (Node.js).
49
49
 
50
- **The local installer** (`install-local.sh`) builds the CLI, compiles skills, and copies compiled outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.) with marker-based stale file cleanup. The bootstrap installer is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and is also bundled in the npm package as `install.sh`. It installs the npm utility first, then delegates to `install-local.sh --skills-only`. Local installer functions use `set -e` for fail-fast behavior. Any function that uses an early-exit guard (`[[ -d ... ]] || return`, `[[ -z ... ]] && return`) **must** use `return 0`, never bare `return`. Bare `return` inherits the exit code of the last command, which for a failed conditional test is 1 -- and `set -e` treats that as a script-terminating failure with no error message.
50
+ **The installer** (`install.js`) builds the CLI, compiles skills, and copies compiled outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.) with marker-based stale file cleanup. The bootstrap installer is hosted at `https://agenticskillmill.com/install.sh` and bundled in the npm package. It installs the npm utility first, then delegates to `node install.js --skills-only`.
51
51
 
52
52
  ### Key files to modify when augmenting a project
53
53
 
@@ -55,8 +55,8 @@ Skills (what to do) CLI Companion (tools to do it with)
55
55
  |------|---------|
56
56
  | Add a CLI command | `src/core/<name>.ts`, `src/cli/commands/<name>.ts`, `src/cli/index.ts`, `src/index.ts` |
57
57
  | Add a fragment | `skill/fragments/<category>/<name>.md`, `skill/build/manifest.json`, skill source |
58
- | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json`, `install-local.sh` SKILLS array |
59
- | Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
58
+ | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json` |
59
+ | Change installer behavior | `install.js`, then copy to `site/install.sh` and `site/install.ps1` |
60
60
  | Update the landing page | `site/index.html`, `site/style.css` |
61
61
  | Change CI secrets or workflow | `.github/workflows/release.yml` or `deploy-pages.yml`, repo settings |
62
62
  | Rename the project | See the rename workflow |
@@ -78,21 +78,20 @@ There are multiple ways users consume it:
78
78
  | Remote install (bash) | `bash <(curl -fsSL https://<domain>/install.sh)` | End users on Linux/macOS |
79
79
  | Remote install (PowerShell) | `irm https://<domain>/install.ps1 \| iex` | End users on Windows |
80
80
  | npx (no install) | `npx --yes agentic-skill-mill@latest <command>` | Users running CLI commands without global install |
81
- | Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
81
+ | Local development | `git clone` then `node install.js --all` | Contributors working on the project itself |
82
82
 
83
- ### Two installer scripts
83
+ ### One unified installer
84
84
 
85
- **`install-local.sh`** is the full local installer. It runs from a cloned repo and handles:
86
- - `npm install` + `npm run build` + `npm run compile`
87
- - `npm link` to make `skillmill` available globally
85
+ **`install.js`** is a single cross-platform Node.js installer that replaces the old shell/PowerShell split:
86
+ - Runs `npm install` + `npm run build` + `npm run compile` + `npm link`
88
87
  - Copies compiled skill outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.)
89
88
  - Supports `--skills-only` (skip build, just copy), `--uninstall`, `--compile-only`, and per-tool flags (`--cursor`, `--claude`, etc.)
90
89
  - Auto-detects installed tools when no flags are provided
91
90
 
92
- **`install.sh`** is the remote bootstrap installer. It is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and bundled in the npm package. It:
91
+ **`site/install.sh`** is the remote bootstrap installer. It is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and bundled in the npm package. It:
93
92
  1. Runs `npm install -g agentic-skill-mill@latest`
94
- 2. Locates `install-local.sh` inside the globally installed package
95
- 3. Delegates to `install-local.sh --skills-only` with the user's flags
93
+ 2. Locates `install.js` inside the globally installed package
94
+ 3. Delegates to `node install.js --skills-only` with the user's flags
96
95
 
97
96
  Both scripts respect environment overrides `SKILLMILL_PACKAGE_NAME` and `SKILLMILL_PACKAGE_VERSION`.
98
97
 
@@ -103,11 +102,10 @@ The `files` array in `package.json` controls what ships to npm:
103
102
  | Entry | Purpose |
104
103
  |-------|---------|
105
104
  | `dist` | Compiled TypeScript CLI and library |
106
- | `compiled` | Pre-compiled skill outputs for all 7 IDE targets |
105
+ | `compiled` | Pre-compiled skill outputs for all 5 IDE targets |
107
106
  | `skill` | Skill sources, fragments, compiler, and manifest |
108
107
  | `README.md` | Package documentation |
109
- | `install.sh` | Bootstrap installer (bundled for remote delegation) |
110
- | `install-local.sh` | Full local installer (used by bootstrap in --skills-only mode) |
108
+ | `install.js` | Unified cross-platform installer |
111
109
 
112
110
  The `bin` field maps `skillmill` to `dist/cli/index.js`, so `npx agentic-skill-mill` and global install both expose the `skillmill` command.
113
111
 
@@ -143,9 +141,9 @@ When updating the bootstrap installer logic, edit `install.sh` and `install.ps1`
143
141
 
144
142
  | Change | Files to update |
145
143
  |--------|----------------|
146
- | Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
147
- | Change package name | `package.json` name + bin, `install.sh` default, `site/install.sh` default, `install-local.sh` PROJECT_NAME + CLI_BIN_NAME + MANAGED_MARKER, `site/index.html`, README |
148
- | Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
144
+ | Add a new skill | `skill/build/manifest.json` |
145
+ | Change package name | `package.json` name + bin, `site/install.sh` default, `install.js` PROJECT_NAME + CLI_BIN_NAME, `site/index.html`, README |
146
+ | Change bootstrap behavior | `install.js`, then copy to `site/install.sh` and `site/install.ps1` |
149
147
  | Add a GitHub Actions secret | Repo settings, document in README |
150
148
  | Update domain | `site/CNAME`, README, skill source, architecture fragment |
151
149
 
@@ -420,8 +418,7 @@ Direct content or more includes.
420
418
  Then register it:
421
419
 
422
420
  1. Add the skill entry to `skill/build/manifest.json` with its source path and fragment dependencies
423
- 2. Add the skill name to the `SKILLS` array in `install-local.sh`
424
- 3. Compile: `npm run compile`
421
+ 2. Compile: `npm run compile`
425
422
 
426
423
  ### Step 8: If Renaming the Project
427
424
 
@@ -449,9 +446,9 @@ When the project, skill, or CLI needs a new name, update all touchpoints in one
449
446
 
450
447
  4. **Compiler marker** (`skill/build/compile.mjs`) -- update the `MANAGED_BY` constant
451
448
 
452
- 5. **Local installer** (`install-local.sh`) -- update `PROJECT_NAME`, `CLI_BIN_NAME`, `MANAGED_MARKER`, `SKILLS` array
449
+ 5. **Installer** (`install.js`) -- update `PROJECT_NAME`, `CLI_BIN_NAME`, constants
453
450
 
454
- 6. **Bootstrap installer** (`install.sh`) -- update the default `PACKAGE_NAME`, then copy to `site/install.sh`
451
+ 6. **Bootstrap installer** (`site/install.sh`) -- update the default `PACKAGE_NAME`
455
452
 
456
453
  7. **Package metadata** (`package.json`) -- update `name`, `bin` key, and `description`
457
454
 
@@ -489,7 +486,7 @@ After any change, run the full verification sequence:
489
486
 
490
487
  ```bash
491
488
  npm run build # TypeScript CLI compiles cleanly
492
- npm run compile # Skills compile to all 7 IDE targets
489
+ npm run compile # Skills compile to 5 IDE targets
493
490
  npm run compile:validate # Cross-validates manifest vs source includes
494
491
  npx --yes agentic-skill-mill@latest --help # CLI command surface works via npx
495
492
  ```
@@ -20,7 +20,7 @@ Skills (what to do) CLI Companion (tools to do it with)
20
20
  skill/fragments/*.md src/core/*.ts
21
21
  | |
22
22
  v v
23
- compiled/ (7 IDE formats) dist/ (npm -> npx or global CLI)
23
+ compiled/ (5 IDE formats) dist/ (npm -> npx or global CLI)
24
24
  | |
25
25
  +---------> Agent <----------+
26
26
  ^
@@ -45,9 +45,9 @@ Skills (what to do) CLI Companion (tools to do it with)
45
45
  - `src/errors/types.ts` — Typed error hierarchy (AppError, NotFoundError, etc.)
46
46
  - `src/cache/cache-manager.ts` — Two-tier cache (memory + disk) with TTL
47
47
 
48
- **Local installers:** Every project ships `install.sh` (bash) and `install.ps1` (PowerShell). Both support the same flags and produce identical installed state.
48
+ **Local installers:** Every project ships a single cross-platform `install.js` (Node.js).
49
49
 
50
- **The local installer** (`install-local.sh`) builds the CLI, compiles skills, and copies compiled outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.) with marker-based stale file cleanup. The bootstrap installer is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and is also bundled in the npm package as `install.sh`. It installs the npm utility first, then delegates to `install-local.sh --skills-only`. Local installer functions use `set -e` for fail-fast behavior. Any function that uses an early-exit guard (`[[ -d ... ]] || return`, `[[ -z ... ]] && return`) **must** use `return 0`, never bare `return`. Bare `return` inherits the exit code of the last command, which for a failed conditional test is 1 -- and `set -e` treats that as a script-terminating failure with no error message.
50
+ **The installer** (`install.js`) builds the CLI, compiles skills, and copies compiled outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.) with marker-based stale file cleanup. The bootstrap installer is hosted at `https://agenticskillmill.com/install.sh` and bundled in the npm package. It installs the npm utility first, then delegates to `node install.js --skills-only`.
51
51
 
52
52
  ### Key files to modify when augmenting a project
53
53
 
@@ -55,8 +55,8 @@ Skills (what to do) CLI Companion (tools to do it with)
55
55
  |------|---------|
56
56
  | Add a CLI command | `src/core/<name>.ts`, `src/cli/commands/<name>.ts`, `src/cli/index.ts`, `src/index.ts` |
57
57
  | Add a fragment | `skill/fragments/<category>/<name>.md`, `skill/build/manifest.json`, skill source |
58
- | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json`, `install-local.sh` SKILLS array |
59
- | Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
58
+ | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json` |
59
+ | Change installer behavior | `install.js`, then copy to `site/install.sh` and `site/install.ps1` |
60
60
  | Update the landing page | `site/index.html`, `site/style.css` |
61
61
  | Change CI secrets or workflow | `.github/workflows/release.yml` or `deploy-pages.yml`, repo settings |
62
62
  | Rename the project | See the rename workflow |
@@ -78,21 +78,20 @@ There are multiple ways users consume it:
78
78
  | Remote install (bash) | `bash <(curl -fsSL https://<domain>/install.sh)` | End users on Linux/macOS |
79
79
  | Remote install (PowerShell) | `irm https://<domain>/install.ps1 \| iex` | End users on Windows |
80
80
  | npx (no install) | `npx --yes agentic-skill-mill@latest <command>` | Users running CLI commands without global install |
81
- | Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
81
+ | Local development | `git clone` then `node install.js --all` | Contributors working on the project itself |
82
82
 
83
- ### Two installer scripts
83
+ ### One unified installer
84
84
 
85
- **`install-local.sh`** is the full local installer. It runs from a cloned repo and handles:
86
- - `npm install` + `npm run build` + `npm run compile`
87
- - `npm link` to make `skillmill` available globally
85
+ **`install.js`** is a single cross-platform Node.js installer that replaces the old shell/PowerShell split:
86
+ - Runs `npm install` + `npm run build` + `npm run compile` + `npm link`
88
87
  - Copies compiled skill outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.)
89
88
  - Supports `--skills-only` (skip build, just copy), `--uninstall`, `--compile-only`, and per-tool flags (`--cursor`, `--claude`, etc.)
90
89
  - Auto-detects installed tools when no flags are provided
91
90
 
92
- **`install.sh`** is the remote bootstrap installer. It is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and bundled in the npm package. It:
91
+ **`site/install.sh`** is the remote bootstrap installer. It is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and bundled in the npm package. It:
93
92
  1. Runs `npm install -g agentic-skill-mill@latest`
94
- 2. Locates `install-local.sh` inside the globally installed package
95
- 3. Delegates to `install-local.sh --skills-only` with the user's flags
93
+ 2. Locates `install.js` inside the globally installed package
94
+ 3. Delegates to `node install.js --skills-only` with the user's flags
96
95
 
97
96
  Both scripts respect environment overrides `SKILLMILL_PACKAGE_NAME` and `SKILLMILL_PACKAGE_VERSION`.
98
97
 
@@ -103,11 +102,10 @@ The `files` array in `package.json` controls what ships to npm:
103
102
  | Entry | Purpose |
104
103
  |-------|---------|
105
104
  | `dist` | Compiled TypeScript CLI and library |
106
- | `compiled` | Pre-compiled skill outputs for all 7 IDE targets |
105
+ | `compiled` | Pre-compiled skill outputs for all 5 IDE targets |
107
106
  | `skill` | Skill sources, fragments, compiler, and manifest |
108
107
  | `README.md` | Package documentation |
109
- | `install.sh` | Bootstrap installer (bundled for remote delegation) |
110
- | `install-local.sh` | Full local installer (used by bootstrap in --skills-only mode) |
108
+ | `install.js` | Unified cross-platform installer |
111
109
 
112
110
  The `bin` field maps `skillmill` to `dist/cli/index.js`, so `npx agentic-skill-mill` and global install both expose the `skillmill` command.
113
111
 
@@ -143,9 +141,9 @@ When updating the bootstrap installer logic, edit `install.sh` and `install.ps1`
143
141
 
144
142
  | Change | Files to update |
145
143
  |--------|----------------|
146
- | Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
147
- | Change package name | `package.json` name + bin, `install.sh` default, `site/install.sh` default, `install-local.sh` PROJECT_NAME + CLI_BIN_NAME + MANAGED_MARKER, `site/index.html`, README |
148
- | Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
144
+ | Add a new skill | `skill/build/manifest.json` |
145
+ | Change package name | `package.json` name + bin, `site/install.sh` default, `install.js` PROJECT_NAME + CLI_BIN_NAME, `site/index.html`, README |
146
+ | Change bootstrap behavior | `install.js`, then copy to `site/install.sh` and `site/install.ps1` |
149
147
  | Add a GitHub Actions secret | Repo settings, document in README |
150
148
  | Update domain | `site/CNAME`, README, skill source, architecture fragment |
151
149
 
@@ -420,8 +418,7 @@ Direct content or more includes.
420
418
  Then register it:
421
419
 
422
420
  1. Add the skill entry to `skill/build/manifest.json` with its source path and fragment dependencies
423
- 2. Add the skill name to the `SKILLS` array in `install-local.sh`
424
- 3. Compile: `npm run compile`
421
+ 2. Compile: `npm run compile`
425
422
 
426
423
  ### Step 8: If Renaming the Project
427
424
 
@@ -449,9 +446,9 @@ When the project, skill, or CLI needs a new name, update all touchpoints in one
449
446
 
450
447
  4. **Compiler marker** (`skill/build/compile.mjs`) -- update the `MANAGED_BY` constant
451
448
 
452
- 5. **Local installer** (`install-local.sh`) -- update `PROJECT_NAME`, `CLI_BIN_NAME`, `MANAGED_MARKER`, `SKILLS` array
449
+ 5. **Installer** (`install.js`) -- update `PROJECT_NAME`, `CLI_BIN_NAME`, constants
453
450
 
454
- 6. **Bootstrap installer** (`install.sh`) -- update the default `PACKAGE_NAME`, then copy to `site/install.sh`
451
+ 6. **Bootstrap installer** (`site/install.sh`) -- update the default `PACKAGE_NAME`
455
452
 
456
453
  7. **Package metadata** (`package.json`) -- update `name`, `bin` key, and `description`
457
454
 
@@ -489,7 +486,7 @@ After any change, run the full verification sequence:
489
486
 
490
487
  ```bash
491
488
  npm run build # TypeScript CLI compiles cleanly
492
- npm run compile # Skills compile to all 7 IDE targets
489
+ npm run compile # Skills compile to 5 IDE targets
493
490
  npm run compile:validate # Cross-validates manifest vs source includes
494
491
  npx --yes agentic-skill-mill@latest --help # CLI command surface works via npx
495
492
  ```
@@ -24,7 +24,7 @@ Skills (what to do) CLI Companion (tools to do it with)
24
24
  skill/fragments/*.md src/core/*.ts
25
25
  | |
26
26
  v v
27
- compiled/ (7 IDE formats) dist/ (npm -> npx or global CLI)
27
+ compiled/ (5 IDE formats) dist/ (npm -> npx or global CLI)
28
28
  | |
29
29
  +---------> Agent <----------+
30
30
  ^
@@ -49,9 +49,9 @@ Skills (what to do) CLI Companion (tools to do it with)
49
49
  - `src/errors/types.ts` — Typed error hierarchy (AppError, NotFoundError, etc.)
50
50
  - `src/cache/cache-manager.ts` — Two-tier cache (memory + disk) with TTL
51
51
 
52
- **Local installers:** Every project ships `install.sh` (bash) and `install.ps1` (PowerShell). Both support the same flags and produce identical installed state.
52
+ **Local installers:** Every project ships a single cross-platform `install.js` (Node.js).
53
53
 
54
- **The local installer** (`install-local.sh`) builds the CLI, compiles skills, and copies compiled outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.) with marker-based stale file cleanup. The bootstrap installer is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and is also bundled in the npm package as `install.sh`. It installs the npm utility first, then delegates to `install-local.sh --skills-only`. Local installer functions use `set -e` for fail-fast behavior. Any function that uses an early-exit guard (`[[ -d ... ]] || return`, `[[ -z ... ]] && return`) **must** use `return 0`, never bare `return`. Bare `return` inherits the exit code of the last command, which for a failed conditional test is 1 -- and `set -e` treats that as a script-terminating failure with no error message.
54
+ **The installer** (`install.js`) builds the CLI, compiles skills, and copies compiled outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.) with marker-based stale file cleanup. The bootstrap installer is hosted at `https://agenticskillmill.com/install.sh` and bundled in the npm package. It installs the npm utility first, then delegates to `node install.js --skills-only`.
55
55
 
56
56
  ### Key files to modify when augmenting a project
57
57
 
@@ -59,8 +59,8 @@ Skills (what to do) CLI Companion (tools to do it with)
59
59
  |------|---------|
60
60
  | Add a CLI command | `src/core/<name>.ts`, `src/cli/commands/<name>.ts`, `src/cli/index.ts`, `src/index.ts` |
61
61
  | Add a fragment | `skill/fragments/<category>/<name>.md`, `skill/build/manifest.json`, skill source |
62
- | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json`, `install-local.sh` SKILLS array |
63
- | Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
62
+ | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json` |
63
+ | Change installer behavior | `install.js`, then copy to `site/install.sh` and `site/install.ps1` |
64
64
  | Update the landing page | `site/index.html`, `site/style.css` |
65
65
  | Change CI secrets or workflow | `.github/workflows/release.yml` or `deploy-pages.yml`, repo settings |
66
66
  | Rename the project | See the rename workflow |
@@ -82,21 +82,20 @@ There are multiple ways users consume it:
82
82
  | Remote install (bash) | `bash <(curl -fsSL https://<domain>/install.sh)` | End users on Linux/macOS |
83
83
  | Remote install (PowerShell) | `irm https://<domain>/install.ps1 \| iex` | End users on Windows |
84
84
  | npx (no install) | `npx --yes agentic-skill-mill@latest <command>` | Users running CLI commands without global install |
85
- | Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
85
+ | Local development | `git clone` then `node install.js --all` | Contributors working on the project itself |
86
86
 
87
- ### Two installer scripts
87
+ ### One unified installer
88
88
 
89
- **`install-local.sh`** is the full local installer. It runs from a cloned repo and handles:
90
- - `npm install` + `npm run build` + `npm run compile`
91
- - `npm link` to make `skillmill` available globally
89
+ **`install.js`** is a single cross-platform Node.js installer that replaces the old shell/PowerShell split:
90
+ - Runs `npm install` + `npm run build` + `npm run compile` + `npm link`
92
91
  - Copies compiled skill outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.)
93
92
  - Supports `--skills-only` (skip build, just copy), `--uninstall`, `--compile-only`, and per-tool flags (`--cursor`, `--claude`, etc.)
94
93
  - Auto-detects installed tools when no flags are provided
95
94
 
96
- **`install.sh`** is the remote bootstrap installer. It is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and bundled in the npm package. It:
95
+ **`site/install.sh`** is the remote bootstrap installer. It is hosted at `https://agenticskillmill.com/install.sh` (source: `site/install.sh`) and bundled in the npm package. It:
97
96
  1. Runs `npm install -g agentic-skill-mill@latest`
98
- 2. Locates `install-local.sh` inside the globally installed package
99
- 3. Delegates to `install-local.sh --skills-only` with the user's flags
97
+ 2. Locates `install.js` inside the globally installed package
98
+ 3. Delegates to `node install.js --skills-only` with the user's flags
100
99
 
101
100
  Both scripts respect environment overrides `SKILLMILL_PACKAGE_NAME` and `SKILLMILL_PACKAGE_VERSION`.
102
101
 
@@ -107,11 +106,10 @@ The `files` array in `package.json` controls what ships to npm:
107
106
  | Entry | Purpose |
108
107
  |-------|---------|
109
108
  | `dist` | Compiled TypeScript CLI and library |
110
- | `compiled` | Pre-compiled skill outputs for all 7 IDE targets |
109
+ | `compiled` | Pre-compiled skill outputs for all 5 IDE targets |
111
110
  | `skill` | Skill sources, fragments, compiler, and manifest |
112
111
  | `README.md` | Package documentation |
113
- | `install.sh` | Bootstrap installer (bundled for remote delegation) |
114
- | `install-local.sh` | Full local installer (used by bootstrap in --skills-only mode) |
112
+ | `install.js` | Unified cross-platform installer |
115
113
 
116
114
  The `bin` field maps `skillmill` to `dist/cli/index.js`, so `npx agentic-skill-mill` and global install both expose the `skillmill` command.
117
115
 
@@ -147,9 +145,9 @@ When updating the bootstrap installer logic, edit `install.sh` and `install.ps1`
147
145
 
148
146
  | Change | Files to update |
149
147
  |--------|----------------|
150
- | Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
151
- | Change package name | `package.json` name + bin, `install.sh` default, `site/install.sh` default, `install-local.sh` PROJECT_NAME + CLI_BIN_NAME + MANAGED_MARKER, `site/index.html`, README |
152
- | Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
148
+ | Add a new skill | `skill/build/manifest.json` |
149
+ | Change package name | `package.json` name + bin, `site/install.sh` default, `install.js` PROJECT_NAME + CLI_BIN_NAME, `site/index.html`, README |
150
+ | Change bootstrap behavior | `install.js`, then copy to `site/install.sh` and `site/install.ps1` |
153
151
  | Add a GitHub Actions secret | Repo settings, document in README |
154
152
  | Update domain | `site/CNAME`, README, skill source, architecture fragment |
155
153
 
@@ -424,8 +422,7 @@ Direct content or more includes.
424
422
  Then register it:
425
423
 
426
424
  1. Add the skill entry to `skill/build/manifest.json` with its source path and fragment dependencies
427
- 2. Add the skill name to the `SKILLS` array in `install-local.sh`
428
- 3. Compile: `npm run compile`
425
+ 2. Compile: `npm run compile`
429
426
 
430
427
  ### Step 8: If Renaming the Project
431
428
 
@@ -453,9 +450,9 @@ When the project, skill, or CLI needs a new name, update all touchpoints in one
453
450
 
454
451
  4. **Compiler marker** (`skill/build/compile.mjs`) -- update the `MANAGED_BY` constant
455
452
 
456
- 5. **Local installer** (`install-local.sh`) -- update `PROJECT_NAME`, `CLI_BIN_NAME`, `MANAGED_MARKER`, `SKILLS` array
453
+ 5. **Installer** (`install.js`) -- update `PROJECT_NAME`, `CLI_BIN_NAME`, constants
457
454
 
458
- 6. **Bootstrap installer** (`install.sh`) -- update the default `PACKAGE_NAME`, then copy to `site/install.sh`
455
+ 6. **Bootstrap installer** (`site/install.sh`) -- update the default `PACKAGE_NAME`
459
456
 
460
457
  7. **Package metadata** (`package.json`) -- update `name`, `bin` key, and `description`
461
458
 
@@ -493,7 +490,7 @@ After any change, run the full verification sequence:
493
490
 
494
491
  ```bash
495
492
  npm run build # TypeScript CLI compiles cleanly
496
- npm run compile # Skills compile to all 7 IDE targets
493
+ npm run compile # Skills compile to 5 IDE targets
497
494
  npm run compile:validate # Cross-validates manifest vs source includes
498
495
  npx --yes agentic-skill-mill@latest --help # CLI command surface works via npx
499
496
  ```