@sous-io/sous 0.2.31 → 0.2.32
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/docs/markdown/_sidebar.md +1 -0
- package/docs/markdown/repositories-file-formats.md +3 -3
- package/docs/markdown/repositories.md +6 -5
- package/package.json +1 -1
- package/recipes/core/sous-skills/skills/about-liquid-templates/SKILL.tpl.md +7 -0
- package/recipes/core/sous-skills/skills/about-sous/SKILL.tpl.md +8 -2
- package/recipes/core/sous-skills/skills/about-sous-recipes/SKILL.tpl.md +8 -0
- package/recipes/core/sous-skills/sous.recipe.yaml +1 -1
|
@@ -30,3 +30,4 @@
|
|
|
30
30
|
- [0009: One whole build, everywhere](adrs/0009-whole-build-everywhere.md)
|
|
31
31
|
- [0010: The index describes each version's dependencies and questions](adrs/0010-index-describes-recipes.md)
|
|
32
32
|
- [0011: `sous update` updates sous through the package managers](adrs/0011-self-update.md)
|
|
33
|
+
- [0012: Recipes do not install Sous plugins](adrs/0012-recipes-and-plugins.md)
|
|
@@ -80,9 +80,9 @@ contents: # what a subscriber actually receives
|
|
|
80
80
|
| `contents`, `variables` | no | Contents default to an empty list, which is what a curated bundle publishes; a duplicated variable name, or two definitions claiming one `env`, is an error |
|
|
81
81
|
| `submissions` | no | Whether this recipe takes proposed changes, winning over the repository's block; see [The submissions block](#the-submissions-block) |
|
|
82
82
|
|
|
83
|
-
`contents[].kind` is `skills`, `memories`, `prompts` or `config
|
|
84
|
-
destinations named by [`recipeOutputs`](#recipeoutputs-where-the-files-land);
|
|
85
|
-
layers instead. `include` needs at least one glob, and both lists are recipe-relative.
|
|
83
|
+
`contents[].kind` is `skills`, `memories`, `prompts` or `config`; there is no kind for a sous plugin. The
|
|
84
|
+
first three are written to the destinations named by [`recipeOutputs`](#recipeoutputs-where-the-files-land);
|
|
85
|
+
`config` entries become config layers instead. `include` needs at least one glob, and both lists are recipe-relative.
|
|
86
86
|
|
|
87
87
|
### The submissions block
|
|
88
88
|
|
|
@@ -47,7 +47,8 @@ $ sous namespace list
|
|
|
47
47
|
|
|
48
48
|
A recipe is the unit you subscribe to and the only thing that carries a version. It may hold
|
|
49
49
|
skills, memories, prompts, config layers and variable definitions in any mixture, and
|
|
50
|
-
subscribing to it gets all of them.
|
|
50
|
+
subscribing to it gets all of them. A recipe may ship a plugin for a coding tool (a Claude Code
|
|
51
|
+
plugin, say), but never a plugin for sous itself; those come only with sous or as npm packages.
|
|
51
52
|
|
|
52
53
|
```yaml
|
|
53
54
|
# recipes/workflow/task-files/sous.recipe.yaml
|
|
@@ -193,10 +194,10 @@ this machine.
|
|
|
193
194
|
Subscribing decides what is switched on, and it is not a second security gate. A recipe is
|
|
194
195
|
**active** when the project subscribes to it directly or through its namespace, or when an active
|
|
195
196
|
recipe lists it under `subscribes`; only an active recipe registers entry points of its own, such as
|
|
196
|
-
output files, skills and
|
|
197
|
-
may include, call or import its files, but it registers nothing itself. Activation
|
|
198
|
-
from running what it has no use for and keeps unrelated recipes from colliding;
|
|
199
|
-
trusted repository is already trusted.
|
|
197
|
+
output files, skills, tool hooks and tool plugins. A recipe held only through `depends` is a library:
|
|
198
|
+
an active recipe may include, call or import its files, but it registers nothing itself. Activation
|
|
199
|
+
keeps a project from running what it has no use for and keeps unrelated recipes from colliding;
|
|
200
|
+
everything in a trusted repository is already trusted.
|
|
200
201
|
|
|
201
202
|
## The official repository, and the built-in core
|
|
202
203
|
|
package/package.json
CHANGED
|
@@ -188,6 +188,13 @@ wins**; if none exist, the build errors listing every path tried:
|
|
|
188
188
|
|
|
189
189
|
## Custom Tags
|
|
190
190
|
|
|
191
|
+
The tags below are built into sous. A recipe cannot add a tag or a filter, since that would be a
|
|
192
|
+
Sous plugin; a Sous plugin comes only from sous's built-ins or an npm-style module.
|
|
193
|
+
|
|
194
|
+
> "recipes will not be allowed to install _Sous_ plugins. All Sous plugins, besides any built-ins that ship with Sous, itself, will come from a NPM repo (or similar) as modules. Recipes _will_ be allowed to install tool plugins (e.g. Claude Code Plugins)."
|
|
195
|
+
>
|
|
196
|
+
> -- **Luke Chavers** in an agent session (2026-09-29)
|
|
197
|
+
|
|
191
198
|
**`showVars`**: dumps all variables currently in scope as a fenced JSON block.
|
|
192
199
|
Useful during development to see exactly what variables are available at a given point
|
|
193
200
|
in a template. Remove before finalizing.
|
|
@@ -65,8 +65,14 @@ trust question reads only its index.
|
|
|
65
65
|
Subscribing decides what is switched on, not what is safe. A recipe is active when the
|
|
66
66
|
project subscribes to it, directly or through its namespace, or when an active recipe
|
|
67
67
|
lists it under `subscribes`, and only an active recipe registers entry points of its own
|
|
68
|
-
(output files, skills, hooks). A recipe held only through `depends` is a
|
|
69
|
-
recipe may include, call or import its files, but it registers nothing
|
|
68
|
+
(output files, skills, tool hooks and tool plugins). A recipe held only through `depends` is a
|
|
69
|
+
library: an active recipe may include, call or import its files, but it registers nothing
|
|
70
|
+
itself. No recipe installs a Sous plugin; Sous plugins come only from sous's built-ins and from
|
|
71
|
+
npm-style modules.
|
|
72
|
+
|
|
73
|
+
> "recipes will not be allowed to install _Sous_ plugins. All Sous plugins, besides any built-ins that ship with Sous, itself, will come from a NPM repo (or similar) as modules. Recipes _will_ be allowed to install tool plugins (e.g. Claude Code Plugins)."
|
|
74
|
+
>
|
|
75
|
+
> -- **Luke Chavers** in an agent session (2026-09-29)
|
|
70
76
|
|
|
71
77
|
## Sous's Own Documentation
|
|
72
78
|
|
|
@@ -54,6 +54,14 @@ The fields in that example:
|
|
|
54
54
|
it MUST be `.json`, `.jsonc`, `.yaml` or `.yml`, and every key outside `_aliases`, `_vars`,
|
|
55
55
|
`compilation`, `recipeOutputs`, `runtimeContext`, `store` and `varMappings` is dropped with a
|
|
56
56
|
warning. A recipe that only bundles others may leave `contents` out.
|
|
57
|
+
- A recipe MAY install tool plugins (a plugin for a coding agent tool, such as a Claude Code
|
|
58
|
+
plugin) and MUST NOT install a Sous plugin (one that extends sous itself). Sous plugins come only
|
|
59
|
+
from the built-ins that ship with sous and from npm-style modules. A `config` file is
|
|
60
|
+
configuration, not a Sous plugin.
|
|
61
|
+
|
|
62
|
+
> "recipes will not be allowed to install _Sous_ plugins. All Sous plugins, besides any built-ins that ship with Sous, itself, will come from a NPM repo (or similar) as modules. Recipes _will_ be allowed to install tool plugins (e.g. Claude Code Plugins)."
|
|
63
|
+
>
|
|
64
|
+
> -- **Luke Chavers** in an agent session (2026-09-29)
|
|
57
65
|
- `depends`, `subscribes` and `variables` are described below; `submissions` is in
|
|
58
66
|
`about-sous-repos`.
|
|
59
67
|
|