agentic-skill-mill 1.0.9 → 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,7 +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
- **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.
48
+ **Local installers:** Every project ships a single cross-platform `install.js` (Node.js).
49
+
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`.
49
51
 
50
52
  ### Key files to modify when augmenting a project
51
53
 
@@ -53,8 +55,8 @@ Skills (what to do) CLI Companion (tools to do it with)
53
55
  |------|---------|
54
56
  | Add a CLI command | `src/core/<name>.ts`, `src/cli/commands/<name>.ts`, `src/cli/index.ts`, `src/index.ts` |
55
57
  | Add a fragment | `skill/fragments/<category>/<name>.md`, `skill/build/manifest.json`, skill source |
56
- | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json`, `install-local.sh` SKILLS array |
57
- | Change installer behavior | `install.sh` (repo root) then copy to `site/install.sh` |
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` |
58
60
  | Update the landing page | `site/index.html`, `site/style.css` |
59
61
  | Change CI secrets or workflow | `.github/workflows/release.yml` or `deploy-pages.yml`, repo settings |
60
62
  | Rename the project | See the rename workflow |
@@ -65,27 +67,31 @@ Skills (what to do) CLI Companion (tools to do it with)
65
67
 
66
68
  ### Distribution model
67
69
 
68
- The project is published to npmjs as a public package and hosted at `https://agenticskillmill.com`. There are three ways users consume it:
70
+ The project is published to npmjs as a public package and hosted at `https://agenticskillmill.com`.
71
+
72
+ **Remote install (no clone):** Every project hosts `site/install.sh` and `site/install.ps1` bootstrap scripts served via GitHub Pages. Non-npm projects use a clone-to-temp pattern instead of `npm install -g`.
73
+
74
+ There are multiple ways users consume it:
69
75
 
70
76
  | Method | Command | Who uses it |
71
77
  |--------|---------|-------------|
72
- | Remote install (no clone) | `bash <(curl -fsSL https://agenticskillmill.com/install.sh) --all` | End users who want skills installed into their IDE tools |
78
+ | Remote install (bash) | `bash <(curl -fsSL https://<domain>/install.sh)` | End users on Linux/macOS |
79
+ | Remote install (PowerShell) | `irm https://<domain>/install.ps1 \| iex` | End users on Windows |
73
80
  | npx (no install) | `npx --yes agentic-skill-mill@latest <command>` | Users running CLI commands without global install |
74
- | 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 |
75
82
 
76
- ### Two installer scripts
83
+ ### One unified installer
77
84
 
78
- **`install-local.sh`** is the full local installer. It runs from a cloned repo and handles:
79
- - `npm install` + `npm run build` + `npm run compile`
80
- - `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`
81
87
  - Copies compiled skill outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.)
82
88
  - Supports `--skills-only` (skip build, just copy), `--uninstall`, `--compile-only`, and per-tool flags (`--cursor`, `--claude`, etc.)
83
89
  - Auto-detects installed tools when no flags are provided
84
90
 
85
- **`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:
86
92
  1. Runs `npm install -g agentic-skill-mill@latest`
87
- 2. Locates `install-local.sh` inside the globally installed package
88
- 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
89
95
 
90
96
  Both scripts respect environment overrides `SKILLMILL_PACKAGE_NAME` and `SKILLMILL_PACKAGE_VERSION`.
91
97
 
@@ -96,11 +102,10 @@ The `files` array in `package.json` controls what ships to npm:
96
102
  | Entry | Purpose |
97
103
  |-------|---------|
98
104
  | `dist` | Compiled TypeScript CLI and library |
99
- | `compiled` | Pre-compiled skill outputs for all 7 IDE targets |
105
+ | `compiled` | Pre-compiled skill outputs for all 5 IDE targets |
100
106
  | `skill` | Skill sources, fragments, compiler, and manifest |
101
107
  | `README.md` | Package documentation |
102
- | `install.sh` | Bootstrap installer (bundled for remote delegation) |
103
- | `install-local.sh` | Full local installer (used by bootstrap in --skills-only mode) |
108
+ | `install.js` | Unified cross-platform installer |
104
109
 
105
110
  The `bin` field maps `skillmill` to `dist/cli/index.js`, so `npx agentic-skill-mill` and global install both expose the `skillmill` command.
106
111
 
@@ -128,16 +133,17 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
128
133
  | `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
129
134
  | `site/style.css` | Site styles |
130
135
  | `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
136
+ | `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
131
137
 
132
- When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy it to `site/install.sh` to keep both in sync. The release workflow publishes the repo-root copy to npm; the Pages workflow serves the site copy to the domain.
138
+ When updating the bootstrap installer logic, edit `install.sh` and `install.ps1` at the repo root and copy them to `site/install.sh` and `site/install.ps1` to keep both in sync. The release workflow publishes the repo-root copies to npm; the Pages workflow serves the site copies to the domain.
133
139
 
134
140
  ### Modifying distribution touchpoints
135
141
 
136
142
  | Change | Files to update |
137
143
  |--------|----------------|
138
- | Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
139
- | 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 |
140
- | Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
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` |
141
147
  | Add a GitHub Actions secret | Repo settings, document in README |
142
148
  | Update domain | `site/CNAME`, README, skill source, architecture fragment |
143
149
 
@@ -412,8 +418,7 @@ Direct content or more includes.
412
418
  Then register it:
413
419
 
414
420
  1. Add the skill entry to `skill/build/manifest.json` with its source path and fragment dependencies
415
- 2. Add the skill name to the `SKILLS` array in `install-local.sh`
416
- 3. Compile: `npm run compile`
421
+ 2. Compile: `npm run compile`
417
422
 
418
423
  ### Step 8: If Renaming the Project
419
424
 
@@ -441,9 +446,9 @@ When the project, skill, or CLI needs a new name, update all touchpoints in one
441
446
 
442
447
  4. **Compiler marker** (`skill/build/compile.mjs`) -- update the `MANAGED_BY` constant
443
448
 
444
- 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
445
450
 
446
- 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`
447
452
 
448
453
  7. **Package metadata** (`package.json`) -- update `name`, `bin` key, and `description`
449
454
 
@@ -481,7 +486,7 @@ After any change, run the full verification sequence:
481
486
 
482
487
  ```bash
483
488
  npm run build # TypeScript CLI compiles cleanly
484
- npm run compile # Skills compile to all 7 IDE targets
489
+ npm run compile # Skills compile to 5 IDE targets
485
490
  npm run compile:validate # Cross-validates manifest vs source includes
486
491
  npx --yes agentic-skill-mill@latest --help # CLI command surface works via npx
487
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,7 +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
- **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.
48
+ **Local installers:** Every project ships a single cross-platform `install.js` (Node.js).
49
+
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`.
49
51
 
50
52
  ### Key files to modify when augmenting a project
51
53
 
@@ -53,8 +55,8 @@ Skills (what to do) CLI Companion (tools to do it with)
53
55
  |------|---------|
54
56
  | Add a CLI command | `src/core/<name>.ts`, `src/cli/commands/<name>.ts`, `src/cli/index.ts`, `src/index.ts` |
55
57
  | Add a fragment | `skill/fragments/<category>/<name>.md`, `skill/build/manifest.json`, skill source |
56
- | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json`, `install-local.sh` SKILLS array |
57
- | Change installer behavior | `install.sh` (repo root) then copy to `site/install.sh` |
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` |
58
60
  | Update the landing page | `site/index.html`, `site/style.css` |
59
61
  | Change CI secrets or workflow | `.github/workflows/release.yml` or `deploy-pages.yml`, repo settings |
60
62
  | Rename the project | See the rename workflow |
@@ -65,27 +67,31 @@ Skills (what to do) CLI Companion (tools to do it with)
65
67
 
66
68
  ### Distribution model
67
69
 
68
- The project is published to npmjs as a public package and hosted at `https://agenticskillmill.com`. There are three ways users consume it:
70
+ The project is published to npmjs as a public package and hosted at `https://agenticskillmill.com`.
71
+
72
+ **Remote install (no clone):** Every project hosts `site/install.sh` and `site/install.ps1` bootstrap scripts served via GitHub Pages. Non-npm projects use a clone-to-temp pattern instead of `npm install -g`.
73
+
74
+ There are multiple ways users consume it:
69
75
 
70
76
  | Method | Command | Who uses it |
71
77
  |--------|---------|-------------|
72
- | Remote install (no clone) | `bash <(curl -fsSL https://agenticskillmill.com/install.sh) --all` | End users who want skills installed into their IDE tools |
78
+ | Remote install (bash) | `bash <(curl -fsSL https://<domain>/install.sh)` | End users on Linux/macOS |
79
+ | Remote install (PowerShell) | `irm https://<domain>/install.ps1 \| iex` | End users on Windows |
73
80
  | npx (no install) | `npx --yes agentic-skill-mill@latest <command>` | Users running CLI commands without global install |
74
- | 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 |
75
82
 
76
- ### Two installer scripts
83
+ ### One unified installer
77
84
 
78
- **`install-local.sh`** is the full local installer. It runs from a cloned repo and handles:
79
- - `npm install` + `npm run build` + `npm run compile`
80
- - `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`
81
87
  - Copies compiled skill outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.)
82
88
  - Supports `--skills-only` (skip build, just copy), `--uninstall`, `--compile-only`, and per-tool flags (`--cursor`, `--claude`, etc.)
83
89
  - Auto-detects installed tools when no flags are provided
84
90
 
85
- **`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:
86
92
  1. Runs `npm install -g agentic-skill-mill@latest`
87
- 2. Locates `install-local.sh` inside the globally installed package
88
- 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
89
95
 
90
96
  Both scripts respect environment overrides `SKILLMILL_PACKAGE_NAME` and `SKILLMILL_PACKAGE_VERSION`.
91
97
 
@@ -96,11 +102,10 @@ The `files` array in `package.json` controls what ships to npm:
96
102
  | Entry | Purpose |
97
103
  |-------|---------|
98
104
  | `dist` | Compiled TypeScript CLI and library |
99
- | `compiled` | Pre-compiled skill outputs for all 7 IDE targets |
105
+ | `compiled` | Pre-compiled skill outputs for all 5 IDE targets |
100
106
  | `skill` | Skill sources, fragments, compiler, and manifest |
101
107
  | `README.md` | Package documentation |
102
- | `install.sh` | Bootstrap installer (bundled for remote delegation) |
103
- | `install-local.sh` | Full local installer (used by bootstrap in --skills-only mode) |
108
+ | `install.js` | Unified cross-platform installer |
104
109
 
105
110
  The `bin` field maps `skillmill` to `dist/cli/index.js`, so `npx agentic-skill-mill` and global install both expose the `skillmill` command.
106
111
 
@@ -128,16 +133,17 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
128
133
  | `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
129
134
  | `site/style.css` | Site styles |
130
135
  | `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
136
+ | `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
131
137
 
132
- When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy it to `site/install.sh` to keep both in sync. The release workflow publishes the repo-root copy to npm; the Pages workflow serves the site copy to the domain.
138
+ When updating the bootstrap installer logic, edit `install.sh` and `install.ps1` at the repo root and copy them to `site/install.sh` and `site/install.ps1` to keep both in sync. The release workflow publishes the repo-root copies to npm; the Pages workflow serves the site copies to the domain.
133
139
 
134
140
  ### Modifying distribution touchpoints
135
141
 
136
142
  | Change | Files to update |
137
143
  |--------|----------------|
138
- | Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
139
- | 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 |
140
- | Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
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` |
141
147
  | Add a GitHub Actions secret | Repo settings, document in README |
142
148
  | Update domain | `site/CNAME`, README, skill source, architecture fragment |
143
149
 
@@ -412,8 +418,7 @@ Direct content or more includes.
412
418
  Then register it:
413
419
 
414
420
  1. Add the skill entry to `skill/build/manifest.json` with its source path and fragment dependencies
415
- 2. Add the skill name to the `SKILLS` array in `install-local.sh`
416
- 3. Compile: `npm run compile`
421
+ 2. Compile: `npm run compile`
417
422
 
418
423
  ### Step 8: If Renaming the Project
419
424
 
@@ -441,9 +446,9 @@ When the project, skill, or CLI needs a new name, update all touchpoints in one
441
446
 
442
447
  4. **Compiler marker** (`skill/build/compile.mjs`) -- update the `MANAGED_BY` constant
443
448
 
444
- 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
445
450
 
446
- 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`
447
452
 
448
453
  7. **Package metadata** (`package.json`) -- update `name`, `bin` key, and `description`
449
454
 
@@ -481,7 +486,7 @@ After any change, run the full verification sequence:
481
486
 
482
487
  ```bash
483
488
  npm run build # TypeScript CLI compiles cleanly
484
- npm run compile # Skills compile to all 7 IDE targets
489
+ npm run compile # Skills compile to 5 IDE targets
485
490
  npm run compile:validate # Cross-validates manifest vs source includes
486
491
  npx --yes agentic-skill-mill@latest --help # CLI command surface works via npx
487
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,7 +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
- **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.
48
+ **Local installers:** Every project ships a single cross-platform `install.js` (Node.js).
49
+
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`.
49
51
 
50
52
  ### Key files to modify when augmenting a project
51
53
 
@@ -53,8 +55,8 @@ Skills (what to do) CLI Companion (tools to do it with)
53
55
  |------|---------|
54
56
  | Add a CLI command | `src/core/<name>.ts`, `src/cli/commands/<name>.ts`, `src/cli/index.ts`, `src/index.ts` |
55
57
  | Add a fragment | `skill/fragments/<category>/<name>.md`, `skill/build/manifest.json`, skill source |
56
- | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json`, `install-local.sh` SKILLS array |
57
- | Change installer behavior | `install.sh` (repo root) then copy to `site/install.sh` |
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` |
58
60
  | Update the landing page | `site/index.html`, `site/style.css` |
59
61
  | Change CI secrets or workflow | `.github/workflows/release.yml` or `deploy-pages.yml`, repo settings |
60
62
  | Rename the project | See the rename workflow |
@@ -65,27 +67,31 @@ Skills (what to do) CLI Companion (tools to do it with)
65
67
 
66
68
  ### Distribution model
67
69
 
68
- The project is published to npmjs as a public package and hosted at `https://agenticskillmill.com`. There are three ways users consume it:
70
+ The project is published to npmjs as a public package and hosted at `https://agenticskillmill.com`.
71
+
72
+ **Remote install (no clone):** Every project hosts `site/install.sh` and `site/install.ps1` bootstrap scripts served via GitHub Pages. Non-npm projects use a clone-to-temp pattern instead of `npm install -g`.
73
+
74
+ There are multiple ways users consume it:
69
75
 
70
76
  | Method | Command | Who uses it |
71
77
  |--------|---------|-------------|
72
- | Remote install (no clone) | `bash <(curl -fsSL https://agenticskillmill.com/install.sh) --all` | End users who want skills installed into their IDE tools |
78
+ | Remote install (bash) | `bash <(curl -fsSL https://<domain>/install.sh)` | End users on Linux/macOS |
79
+ | Remote install (PowerShell) | `irm https://<domain>/install.ps1 \| iex` | End users on Windows |
73
80
  | npx (no install) | `npx --yes agentic-skill-mill@latest <command>` | Users running CLI commands without global install |
74
- | 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 |
75
82
 
76
- ### Two installer scripts
83
+ ### One unified installer
77
84
 
78
- **`install-local.sh`** is the full local installer. It runs from a cloned repo and handles:
79
- - `npm install` + `npm run build` + `npm run compile`
80
- - `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`
81
87
  - Copies compiled skill outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.)
82
88
  - Supports `--skills-only` (skip build, just copy), `--uninstall`, `--compile-only`, and per-tool flags (`--cursor`, `--claude`, etc.)
83
89
  - Auto-detects installed tools when no flags are provided
84
90
 
85
- **`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:
86
92
  1. Runs `npm install -g agentic-skill-mill@latest`
87
- 2. Locates `install-local.sh` inside the globally installed package
88
- 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
89
95
 
90
96
  Both scripts respect environment overrides `SKILLMILL_PACKAGE_NAME` and `SKILLMILL_PACKAGE_VERSION`.
91
97
 
@@ -96,11 +102,10 @@ The `files` array in `package.json` controls what ships to npm:
96
102
  | Entry | Purpose |
97
103
  |-------|---------|
98
104
  | `dist` | Compiled TypeScript CLI and library |
99
- | `compiled` | Pre-compiled skill outputs for all 7 IDE targets |
105
+ | `compiled` | Pre-compiled skill outputs for all 5 IDE targets |
100
106
  | `skill` | Skill sources, fragments, compiler, and manifest |
101
107
  | `README.md` | Package documentation |
102
- | `install.sh` | Bootstrap installer (bundled for remote delegation) |
103
- | `install-local.sh` | Full local installer (used by bootstrap in --skills-only mode) |
108
+ | `install.js` | Unified cross-platform installer |
104
109
 
105
110
  The `bin` field maps `skillmill` to `dist/cli/index.js`, so `npx agentic-skill-mill` and global install both expose the `skillmill` command.
106
111
 
@@ -128,16 +133,17 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
128
133
  | `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
129
134
  | `site/style.css` | Site styles |
130
135
  | `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
136
+ | `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
131
137
 
132
- When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy it to `site/install.sh` to keep both in sync. The release workflow publishes the repo-root copy to npm; the Pages workflow serves the site copy to the domain.
138
+ When updating the bootstrap installer logic, edit `install.sh` and `install.ps1` at the repo root and copy them to `site/install.sh` and `site/install.ps1` to keep both in sync. The release workflow publishes the repo-root copies to npm; the Pages workflow serves the site copies to the domain.
133
139
 
134
140
  ### Modifying distribution touchpoints
135
141
 
136
142
  | Change | Files to update |
137
143
  |--------|----------------|
138
- | Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
139
- | 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 |
140
- | Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
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` |
141
147
  | Add a GitHub Actions secret | Repo settings, document in README |
142
148
  | Update domain | `site/CNAME`, README, skill source, architecture fragment |
143
149
 
@@ -412,8 +418,7 @@ Direct content or more includes.
412
418
  Then register it:
413
419
 
414
420
  1. Add the skill entry to `skill/build/manifest.json` with its source path and fragment dependencies
415
- 2. Add the skill name to the `SKILLS` array in `install-local.sh`
416
- 3. Compile: `npm run compile`
421
+ 2. Compile: `npm run compile`
417
422
 
418
423
  ### Step 8: If Renaming the Project
419
424
 
@@ -441,9 +446,9 @@ When the project, skill, or CLI needs a new name, update all touchpoints in one
441
446
 
442
447
  4. **Compiler marker** (`skill/build/compile.mjs`) -- update the `MANAGED_BY` constant
443
448
 
444
- 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
445
450
 
446
- 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`
447
452
 
448
453
  7. **Package metadata** (`package.json`) -- update `name`, `bin` key, and `description`
449
454
 
@@ -481,7 +486,7 @@ After any change, run the full verification sequence:
481
486
 
482
487
  ```bash
483
488
  npm run build # TypeScript CLI compiles cleanly
484
- npm run compile # Skills compile to all 7 IDE targets
489
+ npm run compile # Skills compile to 5 IDE targets
485
490
  npm run compile:validate # Cross-validates manifest vs source includes
486
491
  npx --yes agentic-skill-mill@latest --help # CLI command surface works via npx
487
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,7 +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
- **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.
52
+ **Local installers:** Every project ships a single cross-platform `install.js` (Node.js).
53
+
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`.
53
55
 
54
56
  ### Key files to modify when augmenting a project
55
57
 
@@ -57,8 +59,8 @@ Skills (what to do) CLI Companion (tools to do it with)
57
59
  |------|---------|
58
60
  | Add a CLI command | `src/core/<name>.ts`, `src/cli/commands/<name>.ts`, `src/cli/index.ts`, `src/index.ts` |
59
61
  | Add a fragment | `skill/fragments/<category>/<name>.md`, `skill/build/manifest.json`, skill source |
60
- | Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json`, `install-local.sh` SKILLS array |
61
- | Change installer behavior | `install.sh` (repo root) then copy to `site/install.sh` |
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` |
62
64
  | Update the landing page | `site/index.html`, `site/style.css` |
63
65
  | Change CI secrets or workflow | `.github/workflows/release.yml` or `deploy-pages.yml`, repo settings |
64
66
  | Rename the project | See the rename workflow |
@@ -69,27 +71,31 @@ Skills (what to do) CLI Companion (tools to do it with)
69
71
 
70
72
  ### Distribution model
71
73
 
72
- The project is published to npmjs as a public package and hosted at `https://agenticskillmill.com`. There are three ways users consume it:
74
+ The project is published to npmjs as a public package and hosted at `https://agenticskillmill.com`.
75
+
76
+ **Remote install (no clone):** Every project hosts `site/install.sh` and `site/install.ps1` bootstrap scripts served via GitHub Pages. Non-npm projects use a clone-to-temp pattern instead of `npm install -g`.
77
+
78
+ There are multiple ways users consume it:
73
79
 
74
80
  | Method | Command | Who uses it |
75
81
  |--------|---------|-------------|
76
- | Remote install (no clone) | `bash <(curl -fsSL https://agenticskillmill.com/install.sh) --all` | End users who want skills installed into their IDE tools |
82
+ | Remote install (bash) | `bash <(curl -fsSL https://<domain>/install.sh)` | End users on Linux/macOS |
83
+ | Remote install (PowerShell) | `irm https://<domain>/install.ps1 \| iex` | End users on Windows |
77
84
  | npx (no install) | `npx --yes agentic-skill-mill@latest <command>` | Users running CLI commands without global install |
78
- | 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 |
79
86
 
80
- ### Two installer scripts
87
+ ### One unified installer
81
88
 
82
- **`install-local.sh`** is the full local installer. It runs from a cloned repo and handles:
83
- - `npm install` + `npm run build` + `npm run compile`
84
- - `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`
85
91
  - Copies compiled skill outputs to IDE-specific directories (~/.claude/skills, ~/.cursor/rules, etc.)
86
92
  - Supports `--skills-only` (skip build, just copy), `--uninstall`, `--compile-only`, and per-tool flags (`--cursor`, `--claude`, etc.)
87
93
  - Auto-detects installed tools when no flags are provided
88
94
 
89
- **`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:
90
96
  1. Runs `npm install -g agentic-skill-mill@latest`
91
- 2. Locates `install-local.sh` inside the globally installed package
92
- 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
93
99
 
94
100
  Both scripts respect environment overrides `SKILLMILL_PACKAGE_NAME` and `SKILLMILL_PACKAGE_VERSION`.
95
101
 
@@ -100,11 +106,10 @@ The `files` array in `package.json` controls what ships to npm:
100
106
  | Entry | Purpose |
101
107
  |-------|---------|
102
108
  | `dist` | Compiled TypeScript CLI and library |
103
- | `compiled` | Pre-compiled skill outputs for all 7 IDE targets |
109
+ | `compiled` | Pre-compiled skill outputs for all 5 IDE targets |
104
110
  | `skill` | Skill sources, fragments, compiler, and manifest |
105
111
  | `README.md` | Package documentation |
106
- | `install.sh` | Bootstrap installer (bundled for remote delegation) |
107
- | `install-local.sh` | Full local installer (used by bootstrap in --skills-only mode) |
112
+ | `install.js` | Unified cross-platform installer |
108
113
 
109
114
  The `bin` field maps `skillmill` to `dist/cli/index.js`, so `npx agentic-skill-mill` and global install both expose the `skillmill` command.
110
115
 
@@ -132,16 +137,17 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
132
137
  | `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
133
138
  | `site/style.css` | Site styles |
134
139
  | `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
140
+ | `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
135
141
 
136
- When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy it to `site/install.sh` to keep both in sync. The release workflow publishes the repo-root copy to npm; the Pages workflow serves the site copy to the domain.
142
+ When updating the bootstrap installer logic, edit `install.sh` and `install.ps1` at the repo root and copy them to `site/install.sh` and `site/install.ps1` to keep both in sync. The release workflow publishes the repo-root copies to npm; the Pages workflow serves the site copies to the domain.
137
143
 
138
144
  ### Modifying distribution touchpoints
139
145
 
140
146
  | Change | Files to update |
141
147
  |--------|----------------|
142
- | Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
143
- | 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 |
144
- | Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
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` |
145
151
  | Add a GitHub Actions secret | Repo settings, document in README |
146
152
  | Update domain | `site/CNAME`, README, skill source, architecture fragment |
147
153
 
@@ -416,8 +422,7 @@ Direct content or more includes.
416
422
  Then register it:
417
423
 
418
424
  1. Add the skill entry to `skill/build/manifest.json` with its source path and fragment dependencies
419
- 2. Add the skill name to the `SKILLS` array in `install-local.sh`
420
- 3. Compile: `npm run compile`
425
+ 2. Compile: `npm run compile`
421
426
 
422
427
  ### Step 8: If Renaming the Project
423
428
 
@@ -445,9 +450,9 @@ When the project, skill, or CLI needs a new name, update all touchpoints in one
445
450
 
446
451
  4. **Compiler marker** (`skill/build/compile.mjs`) -- update the `MANAGED_BY` constant
447
452
 
448
- 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
449
454
 
450
- 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`
451
456
 
452
457
  7. **Package metadata** (`package.json`) -- update `name`, `bin` key, and `description`
453
458
 
@@ -485,7 +490,7 @@ After any change, run the full verification sequence:
485
490
 
486
491
  ```bash
487
492
  npm run build # TypeScript CLI compiles cleanly
488
- npm run compile # Skills compile to all 7 IDE targets
493
+ npm run compile # Skills compile to 5 IDE targets
489
494
  npm run compile:validate # Cross-validates manifest vs source includes
490
495
  npx --yes agentic-skill-mill@latest --help # CLI command surface works via npx
491
496
  ```