agentic-skill-mill 1.0.8 → 1.0.10
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/compiled/claude/agentic-skill-mill/SKILL.md +42 -5
- package/compiled/codex/agentic-skill-mill/SKILL.md +42 -5
- package/compiled/cursor/rules/agentic-skill-mill.mdc +42 -5
- package/compiled/cursor/skills/agentic-skill-mill/SKILL.md +42 -5
- package/compiled/opencode/agentic-skill-mill.md +42 -5
- package/compiled/windsurf/rules/agentic-skill-mill.md +42 -5
- package/compiled/windsurf/skills/agentic-skill-mill/SKILL.md +42 -5
- package/package.json +1 -1
- package/skill/build/manifest.json +2 -1
- package/skill/fragments/meta/architecture-overview.md +3 -1
- package/skill/fragments/meta/distribution-and-ci.md +10 -4
- package/skill/fragments/meta/skill-signature.md +28 -0
- package/skill/skills/agentic-skill-mill/agentic-skill-mill.md +2 -0
|
@@ -45,6 +45,8 @@ 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.
|
|
49
|
+
|
|
48
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.
|
|
49
51
|
|
|
50
52
|
### Key files to modify when augmenting a project
|
|
@@ -54,7 +56,7 @@ Skills (what to do) CLI Companion (tools to do it with)
|
|
|
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
58
|
| 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
|
|
59
|
+
| Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
|
|
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,11 +67,16 @@ 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`.
|
|
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 (
|
|
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
81
|
| Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
|
|
75
82
|
|
|
@@ -128,8 +135,9 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
|
|
|
128
135
|
| `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
|
|
129
136
|
| `site/style.css` | Site styles |
|
|
130
137
|
| `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
|
|
138
|
+
| `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
|
|
131
139
|
|
|
132
|
-
When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy
|
|
140
|
+
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
141
|
|
|
134
142
|
### Modifying distribution touchpoints
|
|
135
143
|
|
|
@@ -137,7 +145,7 @@ When updating the bootstrap installer logic, edit `install.sh` at the repo root
|
|
|
137
145
|
|--------|----------------|
|
|
138
146
|
| Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
|
|
139
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 |
|
|
140
|
-
| Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
|
|
148
|
+
| Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
|
|
141
149
|
| Add a GitHub Actions secret | Repo settings, document in README |
|
|
142
150
|
| Update domain | `site/CNAME`, README, skill source, architecture fragment |
|
|
143
151
|
|
|
@@ -504,6 +512,35 @@ Use conventional commit format with a detailed body:
|
|
|
504
512
|
|
|
505
513
|
The commit body should list every file category changed (core modules, CLI wrappers, fragments, manifest, etc.) and what was done in each.
|
|
506
514
|
|
|
515
|
+
### Cross-Artifact Skill Signature
|
|
516
|
+
|
|
517
|
+
When updating or creating a skill, embed a deterministic signature in each externally searchable artifact so operators can query everything produced by that specific skill across systems.
|
|
518
|
+
|
|
519
|
+
Derive the signature per skill name:
|
|
520
|
+
|
|
521
|
+
- Compute `sha256("<skill-name>")`
|
|
522
|
+
- Use the first 8 lowercase hex characters
|
|
523
|
+
- Format as `skill-sig: <sig8>`
|
|
524
|
+
|
|
525
|
+
For a given skill name, the value is permanently static across all versions.
|
|
526
|
+
|
|
527
|
+
Example:
|
|
528
|
+
|
|
529
|
+
- `sha256("3pp-skill")` -> `ad61853a...`
|
|
530
|
+
- signature value: `skill-sig: ad61853a`
|
|
531
|
+
|
|
532
|
+
### Artifact Embedding Rules
|
|
533
|
+
|
|
534
|
+
- **Commit message body**: append a git trailer after a blank line: `Skill-Sig: <sig8>`
|
|
535
|
+
- **PR markdown doc**: append `<sub>skill-sig: <sig8></sub>` after the `## Notes` section
|
|
536
|
+
- **GUS HTML details**: append `<p style="font-size:0.8em;color:#888">skill-sig: <sig8></p>` before closing `</body></html>`
|
|
537
|
+
|
|
538
|
+
### Searchability Targets
|
|
539
|
+
|
|
540
|
+
- Git: `git log --grep="skill-sig: <sig8>"`
|
|
541
|
+
- GitHub: search for `"skill-sig: <sig8>"`
|
|
542
|
+
- GUS SOQL: `WHERE Details__c LIKE '%skill-sig: <sig8>%'`
|
|
543
|
+
|
|
507
544
|
---
|
|
508
545
|
|
|
509
546
|
## Anti-Patterns
|
|
@@ -45,6 +45,8 @@ 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.
|
|
49
|
+
|
|
48
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.
|
|
49
51
|
|
|
50
52
|
### Key files to modify when augmenting a project
|
|
@@ -54,7 +56,7 @@ Skills (what to do) CLI Companion (tools to do it with)
|
|
|
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
58
|
| 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
|
|
59
|
+
| Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
|
|
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,11 +67,16 @@ 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`.
|
|
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 (
|
|
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
81
|
| Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
|
|
75
82
|
|
|
@@ -128,8 +135,9 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
|
|
|
128
135
|
| `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
|
|
129
136
|
| `site/style.css` | Site styles |
|
|
130
137
|
| `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
|
|
138
|
+
| `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
|
|
131
139
|
|
|
132
|
-
When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy
|
|
140
|
+
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
141
|
|
|
134
142
|
### Modifying distribution touchpoints
|
|
135
143
|
|
|
@@ -137,7 +145,7 @@ When updating the bootstrap installer logic, edit `install.sh` at the repo root
|
|
|
137
145
|
|--------|----------------|
|
|
138
146
|
| Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
|
|
139
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 |
|
|
140
|
-
| Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
|
|
148
|
+
| Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
|
|
141
149
|
| Add a GitHub Actions secret | Repo settings, document in README |
|
|
142
150
|
| Update domain | `site/CNAME`, README, skill source, architecture fragment |
|
|
143
151
|
|
|
@@ -504,6 +512,35 @@ Use conventional commit format with a detailed body:
|
|
|
504
512
|
|
|
505
513
|
The commit body should list every file category changed (core modules, CLI wrappers, fragments, manifest, etc.) and what was done in each.
|
|
506
514
|
|
|
515
|
+
### Cross-Artifact Skill Signature
|
|
516
|
+
|
|
517
|
+
When updating or creating a skill, embed a deterministic signature in each externally searchable artifact so operators can query everything produced by that specific skill across systems.
|
|
518
|
+
|
|
519
|
+
Derive the signature per skill name:
|
|
520
|
+
|
|
521
|
+
- Compute `sha256("<skill-name>")`
|
|
522
|
+
- Use the first 8 lowercase hex characters
|
|
523
|
+
- Format as `skill-sig: <sig8>`
|
|
524
|
+
|
|
525
|
+
For a given skill name, the value is permanently static across all versions.
|
|
526
|
+
|
|
527
|
+
Example:
|
|
528
|
+
|
|
529
|
+
- `sha256("3pp-skill")` -> `ad61853a...`
|
|
530
|
+
- signature value: `skill-sig: ad61853a`
|
|
531
|
+
|
|
532
|
+
### Artifact Embedding Rules
|
|
533
|
+
|
|
534
|
+
- **Commit message body**: append a git trailer after a blank line: `Skill-Sig: <sig8>`
|
|
535
|
+
- **PR markdown doc**: append `<sub>skill-sig: <sig8></sub>` after the `## Notes` section
|
|
536
|
+
- **GUS HTML details**: append `<p style="font-size:0.8em;color:#888">skill-sig: <sig8></p>` before closing `</body></html>`
|
|
537
|
+
|
|
538
|
+
### Searchability Targets
|
|
539
|
+
|
|
540
|
+
- Git: `git log --grep="skill-sig: <sig8>"`
|
|
541
|
+
- GitHub: search for `"skill-sig: <sig8>"`
|
|
542
|
+
- GUS SOQL: `WHERE Details__c LIKE '%skill-sig: <sig8>%'`
|
|
543
|
+
|
|
507
544
|
---
|
|
508
545
|
|
|
509
546
|
## Anti-Patterns
|
|
@@ -45,6 +45,8 @@ 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.
|
|
49
|
+
|
|
48
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.
|
|
49
51
|
|
|
50
52
|
### Key files to modify when augmenting a project
|
|
@@ -54,7 +56,7 @@ Skills (what to do) CLI Companion (tools to do it with)
|
|
|
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
58
|
| 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
|
|
59
|
+
| Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
|
|
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,11 +67,16 @@ 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`.
|
|
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 (
|
|
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
81
|
| Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
|
|
75
82
|
|
|
@@ -128,8 +135,9 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
|
|
|
128
135
|
| `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
|
|
129
136
|
| `site/style.css` | Site styles |
|
|
130
137
|
| `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
|
|
138
|
+
| `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
|
|
131
139
|
|
|
132
|
-
When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy
|
|
140
|
+
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
141
|
|
|
134
142
|
### Modifying distribution touchpoints
|
|
135
143
|
|
|
@@ -137,7 +145,7 @@ When updating the bootstrap installer logic, edit `install.sh` at the repo root
|
|
|
137
145
|
|--------|----------------|
|
|
138
146
|
| Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
|
|
139
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 |
|
|
140
|
-
| Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
|
|
148
|
+
| Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
|
|
141
149
|
| Add a GitHub Actions secret | Repo settings, document in README |
|
|
142
150
|
| Update domain | `site/CNAME`, README, skill source, architecture fragment |
|
|
143
151
|
|
|
@@ -504,6 +512,35 @@ Use conventional commit format with a detailed body:
|
|
|
504
512
|
|
|
505
513
|
The commit body should list every file category changed (core modules, CLI wrappers, fragments, manifest, etc.) and what was done in each.
|
|
506
514
|
|
|
515
|
+
### Cross-Artifact Skill Signature
|
|
516
|
+
|
|
517
|
+
When updating or creating a skill, embed a deterministic signature in each externally searchable artifact so operators can query everything produced by that specific skill across systems.
|
|
518
|
+
|
|
519
|
+
Derive the signature per skill name:
|
|
520
|
+
|
|
521
|
+
- Compute `sha256("<skill-name>")`
|
|
522
|
+
- Use the first 8 lowercase hex characters
|
|
523
|
+
- Format as `skill-sig: <sig8>`
|
|
524
|
+
|
|
525
|
+
For a given skill name, the value is permanently static across all versions.
|
|
526
|
+
|
|
527
|
+
Example:
|
|
528
|
+
|
|
529
|
+
- `sha256("3pp-skill")` -> `ad61853a...`
|
|
530
|
+
- signature value: `skill-sig: ad61853a`
|
|
531
|
+
|
|
532
|
+
### Artifact Embedding Rules
|
|
533
|
+
|
|
534
|
+
- **Commit message body**: append a git trailer after a blank line: `Skill-Sig: <sig8>`
|
|
535
|
+
- **PR markdown doc**: append `<sub>skill-sig: <sig8></sub>` after the `## Notes` section
|
|
536
|
+
- **GUS HTML details**: append `<p style="font-size:0.8em;color:#888">skill-sig: <sig8></p>` before closing `</body></html>`
|
|
537
|
+
|
|
538
|
+
### Searchability Targets
|
|
539
|
+
|
|
540
|
+
- Git: `git log --grep="skill-sig: <sig8>"`
|
|
541
|
+
- GitHub: search for `"skill-sig: <sig8>"`
|
|
542
|
+
- GUS SOQL: `WHERE Details__c LIKE '%skill-sig: <sig8>%'`
|
|
543
|
+
|
|
507
544
|
---
|
|
508
545
|
|
|
509
546
|
## Anti-Patterns
|
|
@@ -45,6 +45,8 @@ 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.
|
|
49
|
+
|
|
48
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.
|
|
49
51
|
|
|
50
52
|
### Key files to modify when augmenting a project
|
|
@@ -54,7 +56,7 @@ Skills (what to do) CLI Companion (tools to do it with)
|
|
|
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
58
|
| 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
|
|
59
|
+
| Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
|
|
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,11 +67,16 @@ 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`.
|
|
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 (
|
|
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
81
|
| Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
|
|
75
82
|
|
|
@@ -128,8 +135,9 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
|
|
|
128
135
|
| `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
|
|
129
136
|
| `site/style.css` | Site styles |
|
|
130
137
|
| `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
|
|
138
|
+
| `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
|
|
131
139
|
|
|
132
|
-
When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy
|
|
140
|
+
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
141
|
|
|
134
142
|
### Modifying distribution touchpoints
|
|
135
143
|
|
|
@@ -137,7 +145,7 @@ When updating the bootstrap installer logic, edit `install.sh` at the repo root
|
|
|
137
145
|
|--------|----------------|
|
|
138
146
|
| Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
|
|
139
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 |
|
|
140
|
-
| Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
|
|
148
|
+
| Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
|
|
141
149
|
| Add a GitHub Actions secret | Repo settings, document in README |
|
|
142
150
|
| Update domain | `site/CNAME`, README, skill source, architecture fragment |
|
|
143
151
|
|
|
@@ -504,6 +512,35 @@ Use conventional commit format with a detailed body:
|
|
|
504
512
|
|
|
505
513
|
The commit body should list every file category changed (core modules, CLI wrappers, fragments, manifest, etc.) and what was done in each.
|
|
506
514
|
|
|
515
|
+
### Cross-Artifact Skill Signature
|
|
516
|
+
|
|
517
|
+
When updating or creating a skill, embed a deterministic signature in each externally searchable artifact so operators can query everything produced by that specific skill across systems.
|
|
518
|
+
|
|
519
|
+
Derive the signature per skill name:
|
|
520
|
+
|
|
521
|
+
- Compute `sha256("<skill-name>")`
|
|
522
|
+
- Use the first 8 lowercase hex characters
|
|
523
|
+
- Format as `skill-sig: <sig8>`
|
|
524
|
+
|
|
525
|
+
For a given skill name, the value is permanently static across all versions.
|
|
526
|
+
|
|
527
|
+
Example:
|
|
528
|
+
|
|
529
|
+
- `sha256("3pp-skill")` -> `ad61853a...`
|
|
530
|
+
- signature value: `skill-sig: ad61853a`
|
|
531
|
+
|
|
532
|
+
### Artifact Embedding Rules
|
|
533
|
+
|
|
534
|
+
- **Commit message body**: append a git trailer after a blank line: `Skill-Sig: <sig8>`
|
|
535
|
+
- **PR markdown doc**: append `<sub>skill-sig: <sig8></sub>` after the `## Notes` section
|
|
536
|
+
- **GUS HTML details**: append `<p style="font-size:0.8em;color:#888">skill-sig: <sig8></p>` before closing `</body></html>`
|
|
537
|
+
|
|
538
|
+
### Searchability Targets
|
|
539
|
+
|
|
540
|
+
- Git: `git log --grep="skill-sig: <sig8>"`
|
|
541
|
+
- GitHub: search for `"skill-sig: <sig8>"`
|
|
542
|
+
- GUS SOQL: `WHERE Details__c LIKE '%skill-sig: <sig8>%'`
|
|
543
|
+
|
|
507
544
|
---
|
|
508
545
|
|
|
509
546
|
## Anti-Patterns
|
|
@@ -49,6 +49,8 @@ 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.
|
|
53
|
+
|
|
52
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.
|
|
53
55
|
|
|
54
56
|
### Key files to modify when augmenting a project
|
|
@@ -58,7 +60,7 @@ Skills (what to do) CLI Companion (tools to do it with)
|
|
|
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
62
|
| 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
|
|
63
|
+
| Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
|
|
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,11 +71,16 @@ 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`.
|
|
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 (
|
|
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
85
|
| Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
|
|
79
86
|
|
|
@@ -132,8 +139,9 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
|
|
|
132
139
|
| `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
|
|
133
140
|
| `site/style.css` | Site styles |
|
|
134
141
|
| `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
|
|
142
|
+
| `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
|
|
135
143
|
|
|
136
|
-
When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy
|
|
144
|
+
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
145
|
|
|
138
146
|
### Modifying distribution touchpoints
|
|
139
147
|
|
|
@@ -141,7 +149,7 @@ When updating the bootstrap installer logic, edit `install.sh` at the repo root
|
|
|
141
149
|
|--------|----------------|
|
|
142
150
|
| Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
|
|
143
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 |
|
|
144
|
-
| Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
|
|
152
|
+
| Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
|
|
145
153
|
| Add a GitHub Actions secret | Repo settings, document in README |
|
|
146
154
|
| Update domain | `site/CNAME`, README, skill source, architecture fragment |
|
|
147
155
|
|
|
@@ -508,6 +516,35 @@ Use conventional commit format with a detailed body:
|
|
|
508
516
|
|
|
509
517
|
The commit body should list every file category changed (core modules, CLI wrappers, fragments, manifest, etc.) and what was done in each.
|
|
510
518
|
|
|
519
|
+
### Cross-Artifact Skill Signature
|
|
520
|
+
|
|
521
|
+
When updating or creating a skill, embed a deterministic signature in each externally searchable artifact so operators can query everything produced by that specific skill across systems.
|
|
522
|
+
|
|
523
|
+
Derive the signature per skill name:
|
|
524
|
+
|
|
525
|
+
- Compute `sha256("<skill-name>")`
|
|
526
|
+
- Use the first 8 lowercase hex characters
|
|
527
|
+
- Format as `skill-sig: <sig8>`
|
|
528
|
+
|
|
529
|
+
For a given skill name, the value is permanently static across all versions.
|
|
530
|
+
|
|
531
|
+
Example:
|
|
532
|
+
|
|
533
|
+
- `sha256("3pp-skill")` -> `ad61853a...`
|
|
534
|
+
- signature value: `skill-sig: ad61853a`
|
|
535
|
+
|
|
536
|
+
### Artifact Embedding Rules
|
|
537
|
+
|
|
538
|
+
- **Commit message body**: append a git trailer after a blank line: `Skill-Sig: <sig8>`
|
|
539
|
+
- **PR markdown doc**: append `<sub>skill-sig: <sig8></sub>` after the `## Notes` section
|
|
540
|
+
- **GUS HTML details**: append `<p style="font-size:0.8em;color:#888">skill-sig: <sig8></p>` before closing `</body></html>`
|
|
541
|
+
|
|
542
|
+
### Searchability Targets
|
|
543
|
+
|
|
544
|
+
- Git: `git log --grep="skill-sig: <sig8>"`
|
|
545
|
+
- GitHub: search for `"skill-sig: <sig8>"`
|
|
546
|
+
- GUS SOQL: `WHERE Details__c LIKE '%skill-sig: <sig8>%'`
|
|
547
|
+
|
|
511
548
|
---
|
|
512
549
|
|
|
513
550
|
## Anti-Patterns
|
|
@@ -45,6 +45,8 @@ 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.
|
|
49
|
+
|
|
48
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.
|
|
49
51
|
|
|
50
52
|
### Key files to modify when augmenting a project
|
|
@@ -54,7 +56,7 @@ Skills (what to do) CLI Companion (tools to do it with)
|
|
|
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
58
|
| 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
|
|
59
|
+
| Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
|
|
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,11 +67,16 @@ 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`.
|
|
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 (
|
|
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
81
|
| Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
|
|
75
82
|
|
|
@@ -128,8 +135,9 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
|
|
|
128
135
|
| `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
|
|
129
136
|
| `site/style.css` | Site styles |
|
|
130
137
|
| `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
|
|
138
|
+
| `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
|
|
131
139
|
|
|
132
|
-
When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy
|
|
140
|
+
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
141
|
|
|
134
142
|
### Modifying distribution touchpoints
|
|
135
143
|
|
|
@@ -137,7 +145,7 @@ When updating the bootstrap installer logic, edit `install.sh` at the repo root
|
|
|
137
145
|
|--------|----------------|
|
|
138
146
|
| Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
|
|
139
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 |
|
|
140
|
-
| Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
|
|
148
|
+
| Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
|
|
141
149
|
| Add a GitHub Actions secret | Repo settings, document in README |
|
|
142
150
|
| Update domain | `site/CNAME`, README, skill source, architecture fragment |
|
|
143
151
|
|
|
@@ -504,6 +512,35 @@ Use conventional commit format with a detailed body:
|
|
|
504
512
|
|
|
505
513
|
The commit body should list every file category changed (core modules, CLI wrappers, fragments, manifest, etc.) and what was done in each.
|
|
506
514
|
|
|
515
|
+
### Cross-Artifact Skill Signature
|
|
516
|
+
|
|
517
|
+
When updating or creating a skill, embed a deterministic signature in each externally searchable artifact so operators can query everything produced by that specific skill across systems.
|
|
518
|
+
|
|
519
|
+
Derive the signature per skill name:
|
|
520
|
+
|
|
521
|
+
- Compute `sha256("<skill-name>")`
|
|
522
|
+
- Use the first 8 lowercase hex characters
|
|
523
|
+
- Format as `skill-sig: <sig8>`
|
|
524
|
+
|
|
525
|
+
For a given skill name, the value is permanently static across all versions.
|
|
526
|
+
|
|
527
|
+
Example:
|
|
528
|
+
|
|
529
|
+
- `sha256("3pp-skill")` -> `ad61853a...`
|
|
530
|
+
- signature value: `skill-sig: ad61853a`
|
|
531
|
+
|
|
532
|
+
### Artifact Embedding Rules
|
|
533
|
+
|
|
534
|
+
- **Commit message body**: append a git trailer after a blank line: `Skill-Sig: <sig8>`
|
|
535
|
+
- **PR markdown doc**: append `<sub>skill-sig: <sig8></sub>` after the `## Notes` section
|
|
536
|
+
- **GUS HTML details**: append `<p style="font-size:0.8em;color:#888">skill-sig: <sig8></p>` before closing `</body></html>`
|
|
537
|
+
|
|
538
|
+
### Searchability Targets
|
|
539
|
+
|
|
540
|
+
- Git: `git log --grep="skill-sig: <sig8>"`
|
|
541
|
+
- GitHub: search for `"skill-sig: <sig8>"`
|
|
542
|
+
- GUS SOQL: `WHERE Details__c LIKE '%skill-sig: <sig8>%'`
|
|
543
|
+
|
|
507
544
|
---
|
|
508
545
|
|
|
509
546
|
## Anti-Patterns
|
|
@@ -45,6 +45,8 @@ 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.
|
|
49
|
+
|
|
48
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.
|
|
49
51
|
|
|
50
52
|
### Key files to modify when augmenting a project
|
|
@@ -54,7 +56,7 @@ Skills (what to do) CLI Companion (tools to do it with)
|
|
|
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
58
|
| 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
|
|
59
|
+
| Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
|
|
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,11 +67,16 @@ 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`.
|
|
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 (
|
|
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
81
|
| Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
|
|
75
82
|
|
|
@@ -128,8 +135,9 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
|
|
|
128
135
|
| `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
|
|
129
136
|
| `site/style.css` | Site styles |
|
|
130
137
|
| `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
|
|
138
|
+
| `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
|
|
131
139
|
|
|
132
|
-
When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy
|
|
140
|
+
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
141
|
|
|
134
142
|
### Modifying distribution touchpoints
|
|
135
143
|
|
|
@@ -137,7 +145,7 @@ When updating the bootstrap installer logic, edit `install.sh` at the repo root
|
|
|
137
145
|
|--------|----------------|
|
|
138
146
|
| Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
|
|
139
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 |
|
|
140
|
-
| Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
|
|
148
|
+
| Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
|
|
141
149
|
| Add a GitHub Actions secret | Repo settings, document in README |
|
|
142
150
|
| Update domain | `site/CNAME`, README, skill source, architecture fragment |
|
|
143
151
|
|
|
@@ -504,6 +512,35 @@ Use conventional commit format with a detailed body:
|
|
|
504
512
|
|
|
505
513
|
The commit body should list every file category changed (core modules, CLI wrappers, fragments, manifest, etc.) and what was done in each.
|
|
506
514
|
|
|
515
|
+
### Cross-Artifact Skill Signature
|
|
516
|
+
|
|
517
|
+
When updating or creating a skill, embed a deterministic signature in each externally searchable artifact so operators can query everything produced by that specific skill across systems.
|
|
518
|
+
|
|
519
|
+
Derive the signature per skill name:
|
|
520
|
+
|
|
521
|
+
- Compute `sha256("<skill-name>")`
|
|
522
|
+
- Use the first 8 lowercase hex characters
|
|
523
|
+
- Format as `skill-sig: <sig8>`
|
|
524
|
+
|
|
525
|
+
For a given skill name, the value is permanently static across all versions.
|
|
526
|
+
|
|
527
|
+
Example:
|
|
528
|
+
|
|
529
|
+
- `sha256("3pp-skill")` -> `ad61853a...`
|
|
530
|
+
- signature value: `skill-sig: ad61853a`
|
|
531
|
+
|
|
532
|
+
### Artifact Embedding Rules
|
|
533
|
+
|
|
534
|
+
- **Commit message body**: append a git trailer after a blank line: `Skill-Sig: <sig8>`
|
|
535
|
+
- **PR markdown doc**: append `<sub>skill-sig: <sig8></sub>` after the `## Notes` section
|
|
536
|
+
- **GUS HTML details**: append `<p style="font-size:0.8em;color:#888">skill-sig: <sig8></p>` before closing `</body></html>`
|
|
537
|
+
|
|
538
|
+
### Searchability Targets
|
|
539
|
+
|
|
540
|
+
- Git: `git log --grep="skill-sig: <sig8>"`
|
|
541
|
+
- GitHub: search for `"skill-sig: <sig8>"`
|
|
542
|
+
- GUS SOQL: `WHERE Details__c LIKE '%skill-sig: <sig8>%'`
|
|
543
|
+
|
|
507
544
|
---
|
|
508
545
|
|
|
509
546
|
## Anti-Patterns
|
package/package.json
CHANGED
|
@@ -31,6 +31,8 @@ Skills (what to do) CLI Companion (tools to do it with)
|
|
|
31
31
|
- `src/errors/types.ts` — Typed error hierarchy (AppError, NotFoundError, etc.)
|
|
32
32
|
- `src/cache/cache-manager.ts` — Two-tier cache (memory + disk) with TTL
|
|
33
33
|
|
|
34
|
+
**Local installers:** Every project ships `install.sh` (bash) and `install.ps1` (PowerShell). Both support the same flags and produce identical installed state.
|
|
35
|
+
|
|
34
36
|
**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.
|
|
35
37
|
|
|
36
38
|
### Key files to modify when augmenting a project
|
|
@@ -40,7 +42,7 @@ Skills (what to do) CLI Companion (tools to do it with)
|
|
|
40
42
|
| Add a CLI command | `src/core/<name>.ts`, `src/cli/commands/<name>.ts`, `src/cli/index.ts`, `src/index.ts` |
|
|
41
43
|
| Add a fragment | `skill/fragments/<category>/<name>.md`, `skill/build/manifest.json`, skill source |
|
|
42
44
|
| Add a skill | `skill/skills/<name>/<name>.md`, `skill/build/manifest.json`, `install-local.sh` SKILLS array |
|
|
43
|
-
| Change installer behavior | `install.sh` (repo root) then copy to `site
|
|
45
|
+
| Change installer behavior | `install.sh` and `install.ps1` (repo root), then copy bootstraps to `site/` |
|
|
44
46
|
| Update the landing page | `site/index.html`, `site/style.css` |
|
|
45
47
|
| Change CI secrets or workflow | `.github/workflows/release.yml` or `deploy-pages.yml`, repo settings |
|
|
46
48
|
| Rename the project | See the rename workflow |
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
### Distribution model
|
|
2
2
|
|
|
3
|
-
The project is published to npmjs as a public package and hosted at `https://agenticskillmill.com`.
|
|
3
|
+
The project is published to npmjs as a public package and hosted at `https://agenticskillmill.com`.
|
|
4
|
+
|
|
5
|
+
**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`.
|
|
6
|
+
|
|
7
|
+
There are multiple ways users consume it:
|
|
4
8
|
|
|
5
9
|
| Method | Command | Who uses it |
|
|
6
10
|
|--------|---------|-------------|
|
|
7
|
-
| Remote install (
|
|
11
|
+
| Remote install (bash) | `bash <(curl -fsSL https://<domain>/install.sh)` | End users on Linux/macOS |
|
|
12
|
+
| Remote install (PowerShell) | `irm https://<domain>/install.ps1 \| iex` | End users on Windows |
|
|
8
13
|
| npx (no install) | `npx --yes agentic-skill-mill@latest <command>` | Users running CLI commands without global install |
|
|
9
14
|
| Local development | `git clone` then `bash install-local.sh --all` | Contributors working on the project itself |
|
|
10
15
|
|
|
@@ -63,8 +68,9 @@ Static site served via GitHub Pages at `https://agenticskillmill.com`:
|
|
|
63
68
|
| `site/index.html` | Landing page with architecture, CLI commands, and install instructions |
|
|
64
69
|
| `site/style.css` | Site styles |
|
|
65
70
|
| `site/install.sh` | Bootstrap installer served at `https://agenticskillmill.com/install.sh` |
|
|
71
|
+
| `site/install.ps1` | PowerShell bootstrap installer served at `https://agenticskillmill.com/install.ps1` |
|
|
66
72
|
|
|
67
|
-
When updating the bootstrap installer logic, edit `install.sh` at the repo root and copy
|
|
73
|
+
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.
|
|
68
74
|
|
|
69
75
|
### Modifying distribution touchpoints
|
|
70
76
|
|
|
@@ -72,6 +78,6 @@ When updating the bootstrap installer logic, edit `install.sh` at the repo root
|
|
|
72
78
|
|--------|----------------|
|
|
73
79
|
| Add a new skill | `install-local.sh` SKILLS array, `skill/build/manifest.json` |
|
|
74
80
|
| 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 |
|
|
75
|
-
| Change bootstrap behavior | `install.sh` (repo root), then copy to `site/install.sh` |
|
|
81
|
+
| Change bootstrap behavior | `install.sh` and `install.ps1` (repo root), then copy to `site/install.sh` and `site/install.ps1` |
|
|
76
82
|
| Add a GitHub Actions secret | Repo settings, document in README |
|
|
77
83
|
| Update domain | `site/CNAME`, README, skill source, architecture fragment |
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
### Cross-Artifact Skill Signature
|
|
2
|
+
|
|
3
|
+
When updating or creating a skill, embed a deterministic signature in each externally searchable artifact so operators can query everything produced by that specific skill across systems.
|
|
4
|
+
|
|
5
|
+
Derive the signature per skill name:
|
|
6
|
+
|
|
7
|
+
- Compute `sha256("<skill-name>")`
|
|
8
|
+
- Use the first 8 lowercase hex characters
|
|
9
|
+
- Format as `skill-sig: <sig8>`
|
|
10
|
+
|
|
11
|
+
For a given skill name, the value is permanently static across all versions.
|
|
12
|
+
|
|
13
|
+
Example:
|
|
14
|
+
|
|
15
|
+
- `sha256("3pp-skill")` -> `ad61853a...`
|
|
16
|
+
- signature value: `skill-sig: ad61853a`
|
|
17
|
+
|
|
18
|
+
### Artifact Embedding Rules
|
|
19
|
+
|
|
20
|
+
- **Commit message body**: append a git trailer after a blank line: `Skill-Sig: <sig8>`
|
|
21
|
+
- **PR markdown doc**: append `<sub>skill-sig: <sig8></sub>` after the `## Notes` section
|
|
22
|
+
- **GUS HTML details**: append `<p style="font-size:0.8em;color:#888">skill-sig: <sig8></p>` before closing `</body></html>`
|
|
23
|
+
|
|
24
|
+
### Searchability Targets
|
|
25
|
+
|
|
26
|
+
- Git: `git log --grep="skill-sig: <sig8>"`
|
|
27
|
+
- GitHub: search for `"skill-sig: <sig8>"`
|
|
28
|
+
- GUS SOQL: `WHERE Details__c LIKE '%skill-sig: <sig8>%'`
|
|
@@ -125,6 +125,8 @@ Use conventional commit format with a detailed body:
|
|
|
125
125
|
|
|
126
126
|
The commit body should list every file category changed (core modules, CLI wrappers, fragments, manifest, etc.) and what was done in each.
|
|
127
127
|
|
|
128
|
+
{{include:meta/skill-signature.md}}
|
|
129
|
+
|
|
128
130
|
---
|
|
129
131
|
|
|
130
132
|
## Anti-Patterns
|