@garaje/base 0.1.1 → 0.1.2

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.
Files changed (2) hide show
  1. package/README.md +59 -8
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,10 +1,61 @@
1
1
  # @garaje/base
2
2
 
3
- The garaje framework's agent-side substrate, distributed as a pi package
4
- (extensions, prompts, roles, rules, the Garaje persona, and the park/upgrade
5
- skills), plus the `presets.json` and `agents/*.md` generated from those roles
6
- by `bin/build-roles`. This is the built substrate: the host repo consumes it
7
- declaratively via the local-path `packages` pin in `.pi/settings.json`, and
8
- `.agent/` at the repo root layers thin, repo-local overrides on top.
9
-
10
- See `docs/superpowers/specs/2026-06-30-agent-first-garaje-framework-design.md`.
3
+ The **agent-side substrate** for the [garaje](https://www.npmjs.com/package/garaje)
4
+ framework, distributed as a [pi](https://pi.dev) package.
5
+
6
+ A garaje runs the pi coding agent against your codebases; `@garaje/base` is what
7
+ gives that agent its *garaje-specific* behavior. It ships:
8
+
9
+ - the **Garaje persona**, base **rules**, and canonical **roles**
10
+ (planner / implementer / reviewer / doc-writer),
11
+ - the base **extensions** (preset/role commands, guardrails, protected-paths
12
+ and command-intent guards that keep the agent from reconfiguring its own
13
+ container),
14
+ - the agent **skills** — including **park** (introspect a codebase and wire it
15
+ into the garaje) and **upgrade-bay** (re-park after upstream change),
16
+ - the generated `presets.json` and `agents/*.md` derived from the roles.
17
+
18
+ ## How it's consumed
19
+
20
+ A garaje pins this package **declaratively** — you don't install or import it by
21
+ hand. Its `.pi/settings.json` carries a `packages` entry, and pi installs and
22
+ loads the package (read-only) on session start:
23
+
24
+ ```json
25
+ {
26
+ "packages": [
27
+ {
28
+ "source": "npm:@garaje/base@0.1.1",
29
+ "extensions": ["extensions/**", "!extensions/session-name.ts"]
30
+ }
31
+ ]
32
+ }
33
+ ```
34
+
35
+ `garaje init` writes this pin at the CLI's own version, so a fresh garaje is
36
+ internally consistent by construction, and `garaje upgrade` bumps it.
37
+
38
+ ## Override-only customization
39
+
40
+ The base installs **read-only**. A garaje customizes by layering local resources
41
+ on top — extra rules in `.agent/rules/`, project presets in `.pi/presets.json`,
42
+ local roles in `.pi/agents/` — which pi merges over the base at load time, with
43
+ local entries winning on name collisions. Because lower layers are never edited
44
+ in place, upgrading the framework is a version-pin bump rather than a merge, and
45
+ `garaje upgrade` flags any local override that now shadows or orphans a changed
46
+ base resource.
47
+
48
+ ## Harness portability
49
+
50
+ `@garaje/base` is specifically the **pi adapter** for garaje. The framework's
51
+ harness seam is deliberately thin: targeting a different agent harness means
52
+ shipping a different base package, not rewriting the framework. Role and rule
53
+ *content* is portable Markdown, so it carries across.
54
+
55
+ A pi package contributes **extensions, prompts, roles, rules, and skills** to a
56
+ session (packages contribute resources, not host settings). Released in lockstep
57
+ with the `garaje` CLI.
58
+
59
+ ## License
60
+
61
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@garaje/base",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",