@silverassist/agents-toolkit 2.3.0 → 2.4.0

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
@@ -64,19 +64,24 @@ AGENTS.md # Copilot Coding Agent instructions (proje
64
64
  │ ├── analyze-ticket.prompt.md
65
65
  │ ├── create-plan.prompt.md
66
66
  │ ├── work-ticket.prompt.md
67
- │ └── ...
67
+ │ └── ... # 10 prompts total (depends on --tracker)
68
68
  ├── instructions/
69
69
  │ ├── typescript.instructions.md
70
70
  │ ├── react-components.instructions.md
71
- ├── server-actions.instructions.md
72
- │ ├── tests.instructions.md
73
- └── css-styling.instructions.md
74
- └── skills/
75
- ├── component-architecture/
71
+ └── ... # filtered by --stack
72
+ └── skills/ # Symlinks → ../../.agents/skills/ (npx skills standard)
73
+ ├── domain-driven-design -> ../../.agents/skills/domain-driven-design
74
+ ├── testing-patterns -> ../../.agents/skills/testing-patterns
75
+ └── ... # filtered by --stack
76
+ .agents/
77
+ └── skills/ # Canonical store (single source of truth)
76
78
  ├── domain-driven-design/
77
- └── testing-patterns/
79
+ ├── testing-patterns/
80
+ └── ... # 9 skills total, filtered by --stack
78
81
  ```
79
82
 
83
+ > **Skills follow the [`npx skills`](https://github.com/vercel-labs/skills) standard.** The real skill files live once in the canonical `.agents/skills/` store, and each agent's `skills/` directory contains symlinks to it — a single source of truth shared across Copilot, Claude Code, and Codex. Use `--copy` to materialize real copies instead of symlinks (e.g. on Windows without developer mode; symlinks also fall back to copies automatically when unsupported).
84
+
80
85
  **Running prompts in VS Code:**
81
86
 
82
87
  1. Open Command Palette (`Cmd+Shift+P` / `Ctrl+Shift+P`)
@@ -96,26 +101,37 @@ This creates the following structure:
96
101
 
97
102
  ```
98
103
  CLAUDE.md # Project instructions for Claude Code (project root)
104
+ .agents/
105
+ └── skills/ # Canonical skills store (single source of truth)
106
+ ├── domain-driven-design/
107
+ ├── testing-patterns/
108
+ └── ... # 9 skills total, filtered by --stack
99
109
  .claude/
100
- └── commands/
101
- ├── _partials/
102
- ├── analyze-ticket.md
103
- ├── create-plan.md
104
- ├── work-ticket.md
105
- └── ...
110
+ ├── commands/
111
+ ├── _partials/
112
+ ├── analyze-ticket.md
113
+ ├── create-plan.md
114
+ ├── work-ticket.md
115
+ └── ... # 10 commands total (depends on --tracker)
116
+ └── skills/ # Symlinks → ../../.agents/skills/ (read natively by Claude Code)
117
+ ├── domain-driven-design -> ../../.agents/skills/domain-driven-design
118
+ ├── testing-patterns -> ../../.agents/skills/testing-patterns
119
+ └── ... # filtered by --stack
106
120
  .github/
107
- ├── instructions/ # Shared with Copilot
108
- └── skills/ # Shared with Copilot
121
+ └── instructions/ # Shared with Copilot
109
122
  ```
110
123
 
124
+ > Skills now install to `.claude/skills/` (where Claude Code reads them natively) as symlinks to the canonical `.agents/skills/` store — no longer to `.github/skills/`.
125
+
111
126
  **Running commands in Claude Code:**
112
127
 
113
128
  Type `/` in the chat to see all available slash commands:
114
129
 
115
130
  ```
116
- /analyze-ticket
117
- /work-ticket
118
- /create-pr
131
+ /analyze-github-issue
132
+ /work-github-issue
133
+ /create-github-pr
134
+ /finalize-github-pr
119
135
  ```
120
136
 
121
137
  ### Codex
@@ -136,17 +152,20 @@ AGENTS.md # Project instructions for Codex (project
136
152
  │ ├── analyze-ticket.prompt.md
137
153
  │ ├── create-plan.prompt.md
138
154
  │ ├── work-ticket.prompt.md
139
- │ └── ...
155
+ │ └── ... # 10 prompts total (depends on --tracker)
140
156
  ├── instructions/
141
157
  │ ├── typescript.instructions.md
142
158
  │ ├── react-components.instructions.md
143
- ├── server-actions.instructions.md
144
- │ ├── tests.instructions.md
145
- └── css-styling.instructions.md
146
- └── skills/
147
- ├── component-architecture/
159
+ └── ... # filtered by --stack
160
+ └── skills/ # Symlinks → ../../.agents/skills/ (npx skills standard)
161
+ ├── domain-driven-design -> ../../.agents/skills/domain-driven-design
162
+ ├── testing-patterns -> ../../.agents/skills/testing-patterns
163
+ └── ... # filtered by --stack
164
+ .agents/
165
+ └── skills/ # Canonical store (single source of truth)
148
166
  ├── domain-driven-design/
149
- └── testing-patterns/
167
+ ├── testing-patterns/
168
+ └── ... # 9 skills total, filtered by --stack
150
169
  ```
151
170
 
152
171
  ### Global Install (Optional)
@@ -208,8 +227,10 @@ The same set of prompts is available for all supported tools.
208
227
  | `work-ticket` | Start working on a Jira ticket | `{ticket-id}` | Jira |
209
228
  | `work-github-issue` | Start working on a GitHub issue | `{issue-number}` | GitHub |
210
229
  | `prepare-pr` | Prepare code for PR | — | All |
211
- | `create-pr` | Create a pull request | `{ticket-id}` | Jira |
212
- | `finalize-pr` | Finalize and merge PR | `{ticket-id}` | Jira |
230
+ | `create-pr` | Create a pull request (Jira) | `{ticket-id}` | Jira |
231
+ | `create-github-pr` | Create a pull request (GitHub) | `{issue-number}` | GitHub |
232
+ | `finalize-pr` | Finalize and merge PR (Jira) | `{ticket-id}` | Jira |
233
+ | `finalize-github-pr` | Finalize and merge PR (GitHub) | `{issue-number}` | GitHub |
213
234
 
214
235
  ### Utility
215
236
 
@@ -221,6 +242,8 @@ The same set of prompts is available for all supported tools.
221
242
 
222
243
  ### Workflow Stages
223
244
 
245
+ **Jira workflow:**
246
+
224
247
  ```
225
248
  ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
226
249
  │ 1. Analyze │────▶│ 2. Plan │────▶│ 3. Work │
@@ -234,6 +257,21 @@ The same set of prompts is available for all supported tools.
234
257
  └─────────────────┘ └─────────────────┘ └─────────────────┘
235
258
  ```
236
259
 
260
+ **GitHub workflow:**
261
+
262
+ ```
263
+ ┌──────────────────────┐ ┌─────────────────┐ ┌──────────────────────┐
264
+ │ 1. Analyze │────▶│ 2. Plan │────▶│ 3. Work │
265
+ │ analyze-github-issue│ │ create-plan │ │ work-github-issue │
266
+ └──────────────────────┘ └─────────────────┘ └──────────────────────┘
267
+
268
+
269
+ ┌──────────────────────┐ ┌──────────────────────┐ ┌─────────────────┐
270
+ │ 6. Finalize │◀────│ 5. Create PR │◀─│ 4. Prepare │
271
+ │ finalize-github-pr │ │ create-github-pr │ │ prepare-pr │
272
+ └──────────────────────┘ └──────────────────────┘ └─────────────────┘
273
+ ```
274
+
237
275
  ## CLI Reference
238
276
 
239
277
  ### install
@@ -259,6 +297,7 @@ npx @silverassist/agents-toolkit@latest install [options]
259
297
  | `--partials-only` | Only install partials |
260
298
  | `--skills-only` | Only install skills |
261
299
  | `--hooks-only` | Only install hooks (PostToolUse validation scripts) |
300
+ | `--copy` | Copy skills into each agent dir instead of symlinking to `.agents/skills/` |
262
301
  | `--dry-run` | Show what would be installed without making changes |
263
302
 
264
303
  **Examples:**
@@ -308,7 +347,7 @@ npx @silverassist/agents-toolkit@latest update --global
308
347
 
309
348
  ### update
310
349
 
311
- Update all prompts to the latest version. **Overwrites existing files** (equivalent to `install --force`).
350
+ Update all prompts to the latest version. **Overwrites existing files and refreshes the skills lockfile** (equivalent to `install --force`).
312
351
 
313
352
  ```bash
314
353
  npx @silverassist/agents-toolkit@latest update [options]
@@ -318,6 +357,28 @@ npx @silverassist/agents-toolkit@latest update --codex
318
357
 
319
358
  > ⚠️ **Warning:** This will replace any customizations you've made to the installed files.
320
359
 
360
+ ### restore
361
+
362
+ Restore skills from the lockfile. Reads `agents-toolkit-lock.json` and reinstalls all skills with the correct symlinks. Designed for post-clone setup and CI pipelines.
363
+
364
+ ```bash
365
+ npx @silverassist/agents-toolkit@latest restore
366
+ npx @silverassist/agents-toolkit@latest restore --force # overwrite existing files
367
+ npx @silverassist/agents-toolkit@latest restore --dry-run # preview only
368
+ ```
369
+
370
+ > If the lockfile was written by a different package version, `restore` warns but still proceeds.
371
+
372
+ ### status
373
+
374
+ Check whether installed skills match the lockfile. Useful in CI to detect drift (manually edited skills or stale installs).
375
+
376
+ ```bash
377
+ npx @silverassist/agents-toolkit@latest status
378
+ ```
379
+
380
+ Exits with code `0` if all skills are up-to-date, `1` if any skill is `missing` or `modified`.
381
+
321
382
  ### list
322
383
 
323
384
  List all available prompts and skills.
@@ -340,6 +401,8 @@ npx @silverassist/agents-toolkit@latest list
340
401
  | Get latest version (discard customizations) | `update` |
341
402
  | Update specific category only | `update --prompts-only` |
342
403
  | Preview what would change | `install --dry-run` |
404
+ | Restore skills after clone / CI | `restore` |
405
+ | Check if skills are in sync | `status` |
343
406
 
344
407
  ## Partials
345
408
 
@@ -376,15 +439,48 @@ Specialized knowledge guides for domain-specific patterns:
376
439
  | `domain-driven-design` | DDD principles, domain organization, barrel exports |
377
440
  | `testing-patterns` | Jest + RTL patterns for Next.js 15 and Server Actions |
378
441
 
379
- **GitHub Copilot** reference a skill explicitly:
442
+ Skills follow the [`npx skills`](https://github.com/vercel-labs/skills) standard: the real files live once in the canonical `.agents/skills/` store, and each agent's `skills/` directory symlinks to it (single source of truth, easy updates). Pass `--copy` to materialize real copies instead.
443
+
444
+ **GitHub Copilot** — skills are symlinked into `.github/skills/`. Reference a skill explicitly:
380
445
 
381
446
  ```
382
447
  @workspace Use the component-architecture skill to create a new payment form
383
448
  ```
384
449
 
385
- **Claude Code** — skills are stored in `.github/skills/` and can be referenced in any prompt or command.
450
+ **Claude Code** — skills are symlinked into `.claude/skills/`, where Claude Code reads them natively, and can be referenced in any prompt or command.
451
+
452
+ **Codex** — skills are symlinked into `.github/skills/` and can be referenced from `AGENTS.md` and task context.
386
453
 
387
- **Codex** skills are stored in `.github/skills/` and can be referenced from `AGENTS.md` and task context.
454
+ ### Skills Lockfile
455
+
456
+ When skills are installed, an `agents-toolkit-lock.json` file is written to the project root. This lockfile records each installed skill with its SHA-256 hash (same algorithm used by `npx skills`), allowing teammates and CI pipelines to restore the exact same skill files without committing them to the repository.
457
+
458
+ **Recommended `.gitignore` entries** (automatically appended by `install`):
459
+
460
+ ```gitignore
461
+ # agents-toolkit managed — regenerate with: npx @silverassist/agents-toolkit restore
462
+ .agents/skills/
463
+ .github/skills/
464
+ .claude/skills/
465
+ ```
466
+
467
+ **Workflow:**
468
+
469
+ ```bash
470
+ # Developer A — installs and commits only the lockfile
471
+ npx @silverassist/agents-toolkit@latest install
472
+ git add agents-toolkit-lock.json
473
+ git commit -m "chore: add agents-toolkit skills"
474
+
475
+ # Developer B / CI — after cloning, restores skills from the lockfile
476
+ npx @silverassist/agents-toolkit@latest restore
477
+
478
+ # Check sync status in CI
479
+ npx @silverassist/agents-toolkit@latest status # exits 1 if any skill is missing/modified
480
+
481
+ # Update skills to latest package version
482
+ npx @silverassist/agents-toolkit@latest update # rewrites lockfile with new hashes
483
+ ```
388
484
 
389
485
  ## Hooks
390
486
 
@@ -419,6 +515,13 @@ npx @silverassist/agents-toolkit@latest install --hooks-only
419
515
  npx @silverassist/agents-toolkit@latest install --hooks-only --global
420
516
  ```
421
517
 
518
+ > **How hook paths resolve.** Copilot runs a hook `command` from the workspace root, not
519
+ > the hooks directory. Each generated config therefore sets a `cwd` so `scripts/<name>.sh`
520
+ > resolves: `.github/hooks` (relative, portable) for project installs and the absolute hooks
521
+ > path for global installs. Configs also declare the required `version: 1` field. If you
522
+ > installed hooks with an older version and see `scripts/<name>.sh: No such file or directory`,
523
+ > re-run the install with `--force` to regenerate the configs.
524
+
422
525
  ## Agent Instructions Files
423
526
 
424
527
  ### AGENTS.md (Copilot/Codex Agent)
@@ -440,12 +543,36 @@ Installed at the project root with `--claude`. Contains project-wide instruction
440
543
 
441
544
  - Node.js 18+
442
545
  - Git installed and configured
443
- - **For Jira tracker:** Atlassian MCP configured
444
- - **For GitHub tracker:** GitHub MCP configured
546
+ - **For Jira tracker:** Atlassian MCP configured (see below)
547
+ - **For GitHub tracker:** GitHub MCP configured (see below)
445
548
  - **For GitHub Copilot:** VS Code with GitHub Copilot extension
446
549
  - **For Claude Code:** Claude Code CLI or VS Code extension
447
550
  - **For Codex:** Codex CLI/session running at project root
448
551
 
552
+ ### MCP Server Configuration
553
+
554
+ The Jira and GitHub workflow prompts rely on MCP servers to read/write tickets and pull requests.
555
+ Add a `.mcp.json` file to your project root (or use VS Code's MCP settings) to register the servers:
556
+
557
+ ```json
558
+ {
559
+ "servers": {
560
+ "atlassian": {
561
+ "type": "http",
562
+ "url": "https://mcp.atlassian.com/v1/mcp"
563
+ },
564
+ "github": {
565
+ "type": "http",
566
+ "url": "https://api.githubcopilot.com/mcp/"
567
+ }
568
+ }
569
+ }
570
+ ```
571
+
572
+ > You only need to include the server(s) matching your `--tracker` choice.
573
+ > The Atlassian MCP uses OAuth — authenticate once with `npx @atlassian/mcp-server auth` or via the VS Code MCP UI.
574
+ > The GitHub MCP is authenticated automatically when you are signed in to GitHub Copilot.
575
+
449
576
  ## License
450
577
 
451
578
  [PolyForm Noncommercial License 1.0.0](https://github.com/SilverAssist/agents-toolkit/blob/main/LICENSE)