@sassywares/skills 0.4.0 → 0.4.3
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/CONCEPTS.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Source of truth
|
|
4
4
|
|
|
5
|
-
The repo's `skills/` directory is the only copy of the skills.
|
|
5
|
+
The repo's `skills/` directory is the only copy of the skills. Consumers install from it with `npx skills add sassywares/sassy-skills`, which vendors the files into their project and pins content hashes in `skills-lock.json`; the sync service handles git commit and push.
|
|
6
6
|
|
|
7
7
|
## Skill
|
|
8
8
|
|
package/README.md
CHANGED
|
@@ -302,12 +302,12 @@ npx skills remove # take the suite out again
|
|
|
302
302
|
`@sassywares/skills` is on npm for harnesses that install packages rather than skill directories:
|
|
303
303
|
|
|
304
304
|
```bash
|
|
305
|
-
pi install npm:@sassywares/skills
|
|
305
|
+
pi install npm:@sassywares/skills
|
|
306
306
|
```
|
|
307
307
|
|
|
308
308
|
## Repository maintenance
|
|
309
309
|
|
|
310
|
-
`scripts/sync.sh` commits skill changes, rebases on `origin/main`, and pushes. Any agent that changes a skill must run it immediately, without asking for confirmation. It installs nothing anywhere — a change
|
|
310
|
+
`scripts/sync.sh` commits skill changes, rebases on `origin/main`, and pushes. Any agent that changes a skill must run it immediately, without asking for confirmation. It installs nothing anywhere — consumers get a change when they run `npx skills update` after a push. `AGENTS.md` documents the workflow for agents working on this repo.
|
|
311
311
|
|
|
312
312
|
### Releases
|
|
313
313
|
|
package/package.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: sassy-setup
|
|
3
3
|
description: >-
|
|
4
4
|
Detect a project's topology and wire it for the Sassy Skills suite: write
|
|
5
|
-
.sassywares/config.yaml,
|
|
6
|
-
|
|
5
|
+
.sassywares/config.yaml, vendor the skills from upstream with the open
|
|
6
|
+
`skills` CLI, and install the snapshot tooling in a multi-repo workspace.
|
|
7
7
|
Use when asked to set up, configure, or verify a project.
|
|
8
8
|
argument-hint: "[path] [--check]"
|
|
9
9
|
disable-model-invocation: true
|
|
@@ -11,7 +11,7 @@ disable-model-invocation: true
|
|
|
11
11
|
|
|
12
12
|
# Sassy Setup
|
|
13
13
|
|
|
14
|
-
**Outcome:** `.sassywares/config.yaml` at the project root matching the tree it describes, the skills
|
|
14
|
+
**Outcome:** `.sassywares/config.yaml` at the project root matching the tree it describes, the skills vendored and pinned in `skills-lock.json` and visible to the harness, and — in `workspace` mode — the snapshot tooling installed.
|
|
15
15
|
|
|
16
16
|
**Read `references/config.md` first.** It is the schema and the resolution rules; this skill only decides and writes.
|
|
17
17
|
|
|
@@ -33,7 +33,7 @@ disable-model-invocation: true
|
|
|
33
33
|
5. **Wire the skills.** The suite is installed from upstream with the open `skills` CLI, which vendors the skill files into the project and pins them. Never copy skill files in by hand, never add the suite as a dependency.
|
|
34
34
|
|
|
35
35
|
- **Install it**: `npx -y skills add sassywares/sassy-skills -y`. That writes `.agents/skills/sassy-*` (real files), per-agent links such as `.claude/skills/sassy-*`, and `skills-lock.json`.
|
|
36
|
-
- **
|
|
36
|
+
- **Do not wire updates.** How and when the project refreshes the suite is the project's decision, not setup's: no `skills:*` scripts, no `postinstall` edit. Mention the commands (`npx skills update`, `npx skills experimental_install`) and stop there.
|
|
37
37
|
- **Commit the vendored skills and the lock.** `.agents/skills/sassy-*` and `skills-lock.json` are the pin; a clone then needs no network.
|
|
38
38
|
- **Ignore `.claude/skills` only.** It is a link created at install time. Create `.gitignore` only when there is none — and in `workspace` topology never touch the project's root `.gitignore` at all.
|
|
39
39
|
- **Write `.sassywares/README.md`** from `assets/sassywares-readme.md` when absent. Never overwrite it — it may carry project notes.
|
|
@@ -41,8 +41,8 @@ disable-model-invocation: true
|
|
|
41
41
|
|
|
42
42
|
6. **Install the snapshot, `workspace` only.** Read `references/workspace.md` and follow it.
|
|
43
43
|
|
|
44
|
-
7. **Verify.** Run `scripts/detect.sh --root <path> --check
|
|
45
|
-
8. **Report.** The config path, the topology, the resolved artifact and knowledge paths, the skills
|
|
44
|
+
7. **Verify.** Run `scripts/detect.sh --root <path> --check`. Report every `drift:` line it prints — including an outdated `snapshot` version — or that the config matches the tree, plus that `skills-lock.json` is tracked and matches the vendored skills.
|
|
45
|
+
8. **Report.** The config path, the topology, the resolved artifact and knowledge paths, that the vendored skills and lock are committed and `/reload` is needed, and in `workspace` mode what was installed. **Commit nothing.**
|
|
46
46
|
|
|
47
47
|
## Hard rules
|
|
48
48
|
|
|
@@ -54,8 +54,8 @@ disable-model-invocation: true
|
|
|
54
54
|
| Version is reported | Setup names the snapshot version it installed; `--check` flags an installed copy older than the skill's. |
|
|
55
55
|
| Never commit | Setup writes files and stops. Committing is `sassy-commit`. |
|
|
56
56
|
| Skills come from upstream | Install with `npx skills add`; never hand-copy skill files or maintain the links yourself. |
|
|
57
|
-
|
|
|
58
|
-
| Write boundary | Only `.sassywares/`, the vendored `.agents/skills/sassy-*`, `skills-lock.json`,
|
|
57
|
+
| Never edit the manifest | No dependencies, no scripts, no `postinstall`. Setup installs the suite; the project decides how it updates. |
|
|
58
|
+
| Write boundary | Only `.sassywares/`, the vendored `.agents/skills/sassy-*`, `skills-lock.json`, and one `.gitignore` line. Never `package.json`, never a root `.gitignore` in a workspace. |
|
|
59
59
|
| Detect, don't guess | An unknown base branch stays unknown and gets asked about. A probed value is reported as probed. |
|
|
60
60
|
| Comments are part of the file | Every key keeps its description and allowed values. A stripped config is an incomplete config. |
|
|
61
61
|
| Hooks are named, not written | Setup records hook skill names. Creating those skills is the project's work. |
|
|
@@ -9,10 +9,12 @@ Installed from upstream with the open `skills` CLI, which vendors the skills int
|
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
11
|
npx skills add sassywares/sassy-skills # first install
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
npx skills update -y # pull the latest from upstream
|
|
13
|
+
npx skills experimental_install # restore exactly what the lock pins
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
+
Refreshing the suite is this project's decision — nothing here updates itself.
|
|
17
|
+
|
|
16
18
|
The vendored skills and the lock are committed; `.claude/skills` is a link and is not.
|
|
17
19
|
|
|
18
20
|
`.agents/skills/` is read by pi and Cursor; Claude Code reads `.claude/skills/` only, which is why that symlink exists. After any change, `/reload` your harness.
|
|
@@ -35,13 +35,13 @@ Ask which one, unless the request already made it obvious. The answer changes th
|
|
|
35
35
|
|
|
36
36
|
| Location | Path | Who gets it | Extra work |
|
|
37
37
|
|---|---|---|---|
|
|
38
|
-
| **Internal** — part of this suite | `skills/<name>/` in the sassy-skills repo | Everyone,
|
|
38
|
+
| **Internal** — part of this suite | `skills/<name>/` in the sassy-skills repo | Everyone, once pushed to `main` | Name it `sassy-<name>`, run `scripts/sync.sh`; the npm package follows the next tag |
|
|
39
39
|
| **Project** — team workflow | `<repo>/.agents/skills/<name>/` | Everyone who clones that repo | Commit it; prefix the project (`tap2-…`) so it can't collide with a suite skill or a harness built-in |
|
|
40
40
|
| **User** — personal workflow | `~/.agents/skills/<name>/` | Only this person, every repo on this machine | None — but nothing gates it either; never put something a teammate needs here |
|
|
41
41
|
|
|
42
42
|
Recommend by audience: the team needs it → **project**; only the requester → **user**; it belongs to every project using this suite → **internal**.
|
|
43
43
|
|
|
44
|
-
Internal is the only one that
|
|
44
|
+
Internal is the only one that ships to everyone. Never choose it silently: once it lands on `main`, every consumer gets it on their next `npx skills update`. Say that out loud when you do.
|
|
45
45
|
|
|
46
46
|
Paths in the table are the defaults. Harnesses also read `skills` arrays in settings and installed packages, so a skill may live elsewhere — write down where it actually went.
|
|
47
47
|
|