agent-profile-kit 0.204.1 → 0.237.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/LICENSE +21 -0
- package/README.md +20 -11
- package/dist/cli.js +9136 -10643
- package/docs/guides/agent-workflow.md +82 -41
- package/docs/guides/workspace-contract.md +502 -0
- package/docs/guides/workspace.md +153 -141
- package/package.json +9 -5
package/docs/guides/workspace.md
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Agent Profile Kit keeps your reusable, cross-project agent material in one
|
|
4
4
|
Workspace. The Workspace is the single canonical source. Profiles select a flat
|
|
5
5
|
set of portable artifacts for a kind of work. The Installer installs each bound
|
|
6
|
-
Profile into explicitly bound projects as disposable,
|
|
7
|
-
Supported
|
|
6
|
+
Profile into explicitly bound projects as disposable, agent-native output.
|
|
7
|
+
Supported agents then load that material through ordinary project discovery.
|
|
8
8
|
|
|
9
|
-
Keep project facts in the relevant project repository. Keep
|
|
9
|
+
Keep project facts in the relevant project repository. Keep agent preferences,
|
|
10
10
|
authentication, credentials, and machine-specific values outside the Workspace.
|
|
11
11
|
Edit Workspace files and Local Configuration directly.
|
|
12
12
|
|
|
@@ -18,44 +18,58 @@ Source ownership and managed delivery are separate:
|
|
|
18
18
|
**unselected universal** artifacts (material useful across every directory or
|
|
19
19
|
kind of work, not only one Profile’s selection). Leaving an artifact unselected
|
|
20
20
|
by every Profile does not make it invalid and does not move its canonical
|
|
21
|
-
source into
|
|
21
|
+
source into agent configuration.
|
|
22
22
|
- **Profiles** select the artifacts scoped to a kind of work for Agent Profile
|
|
23
23
|
Kit–managed project-bound delivery. A Project Binding selects a project root,
|
|
24
|
-
one Profile, and
|
|
25
|
-
|
|
24
|
+
one Profile, and agents; only the artifacts that Profile selects enter
|
|
25
|
+
Installation Receipts and the managed lifecycle
|
|
26
26
|
(`status`, `update`, and `uninstall`).
|
|
27
27
|
- Agent Profile Kit v1 does not install, project, synchronize, or remove material in
|
|
28
|
-
personal/global
|
|
28
|
+
personal/global agent roots. Global agent delivery is not APK-owned state: it is
|
|
29
29
|
outside Project Bindings and Installation Receipts, and `update` / `uninstall`
|
|
30
30
|
never adopt, record as managed output, or mutate those paths. `status` does not
|
|
31
31
|
treat global roots as managed output.
|
|
32
32
|
- You may still manage native global delivery yourself—for example by symlinking
|
|
33
|
-
|
|
34
|
-
user-managed
|
|
33
|
+
an agent Skill root entry to canonical Workspace source—but that delivery is
|
|
34
|
+
user-managed agent configuration, not Agent Profile Kit–owned state. Agent
|
|
35
35
|
Profile Kit never adopts, tracks, or uninstalls those global paths.
|
|
36
|
-
- A Skill may be both universally delivered through
|
|
37
|
-
selected into a bound Profile. The
|
|
36
|
+
- A Skill may be both universally delivered through agent configuration and
|
|
37
|
+
selected into a bound Profile. The agent owns discovery, precedence,
|
|
38
38
|
deduplication, collision diagnostics, and resolution between those sources.
|
|
39
39
|
Agent Profile Kit blocks only an exact planned destination it cannot safely
|
|
40
40
|
own, not same-identity material elsewhere.
|
|
41
41
|
|
|
42
42
|
## Initialize
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
There is no default Workspace location: setup records a folder the user names
|
|
45
|
+
(spec #593 DEC-001, ADR-0049). `apkit init <workspace>` adds exactly the
|
|
46
|
+
missing required parts to that folder and a version-2 machine-local Local
|
|
47
|
+
Configuration at `~/.agents/agent-profile-kit/config.yaml` that explicitly
|
|
48
|
+
records the authored path when Local Configuration is absent:
|
|
49
49
|
|
|
50
50
|
```sh
|
|
51
51
|
apkit init ~/projects/agent-profile-workspace
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
`apkit init .` uses the current folder. With a terminal, `init` asks whether
|
|
55
|
+
to use the current folder — shown as its full path — or another path, and
|
|
56
|
+
confirms the chosen folder before any write: it states that Context and Skill
|
|
57
|
+
files will be stored in and loaded from it and lists the parts setup will add
|
|
58
|
+
(or that nothing needs to be added); declining or cancelling writes nothing
|
|
59
|
+
(spec #593 #603). Without a path on a machine that has no selected Workspace
|
|
60
|
+
and without a terminal, `init` writes nothing and prints those two forms;
|
|
61
|
+
supplying the path counts as the confirmation.
|
|
62
|
+
|
|
63
|
+
When Local Configuration is absent, setup adds exactly the missing required
|
|
64
|
+
parts — `workspace.yaml`, `context/`, `skills/`, and `profiles/` — in place to
|
|
65
|
+
the named folder and records the selection (spec #593 DEC-003, ADR-0047). A
|
|
66
|
+
path that does not exist is created only when its parent directory exists; a
|
|
67
|
+
parent that is missing too is refused, and nothing is written outside the
|
|
68
|
+
named path. A valid existing Workspace, including a symlink alias, is adopted,
|
|
69
|
+
adding only its still-missing required parts; existing entries are never
|
|
70
|
+
changed, moved, or deleted. A folder whose existing material is invalid is
|
|
71
|
+
refused with its violation and nothing is added. Rerunning is safe: it never
|
|
72
|
+
overwrites the Workspace or current configuration.
|
|
59
73
|
|
|
60
74
|
To keep the Workspace as an independent Git repository elsewhere, set the
|
|
61
75
|
required `workspace` field in Local Configuration to one existing absolute or
|
|
@@ -82,14 +96,16 @@ only `schema_version: 1`. Local Configuration schema version is 2 and its
|
|
|
82
96
|
### Legacy Local Configuration migration and version compatibility
|
|
83
97
|
|
|
84
98
|
Version-1 Local Configuration without `workspace` is supported only as migration
|
|
85
|
-
input. Run `apkit init
|
|
86
|
-
`install`, or `uninstall`. Those commands never migrate
|
|
87
|
-
the file implicitly: they fail closed with actionable
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
99
|
+
input. Run `apkit init <path>` to upgrade it before using `validate`, `status`,
|
|
100
|
+
`update`, `install`, or `uninstall`. Those commands never migrate
|
|
101
|
+
the file implicitly: they fail closed with actionable upgrade guidance while
|
|
102
|
+
leaving migration to the explicit `init` command.
|
|
103
|
+
|
|
104
|
+
A legacy file that omitted `workspace` has no selection to preserve and is
|
|
105
|
+
never upgraded to a default: zero-argument `init` refuses, and
|
|
106
|
+
`apkit init <path>` upgrades it to the path the user gives (spec #593
|
|
107
|
+
DEC-011, ADR-0049). For a legacy file with an authored path, migration
|
|
108
|
+
preserves that path. `init` validates the selected
|
|
93
109
|
Workspace before atomically replacing only Local Configuration, preserving
|
|
94
110
|
Project Bindings, comments, line endings, and file mode; it never moves or
|
|
95
111
|
rewrites Workspace source. If validation fails, the configuration remains
|
|
@@ -118,89 +134,77 @@ The restored file preserves the pre-migration Workspace selection and Project
|
|
|
118
134
|
Bindings. This reverses only the Local Configuration schema transition; it does
|
|
119
135
|
not undo later Workspace content changes.
|
|
120
136
|
|
|
121
|
-
### Required structure vs
|
|
137
|
+
### Required structure vs optional files
|
|
122
138
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
139
|
+
The Workspace contract (run `apkit guide --contract`) states the required
|
|
140
|
+
structure and every rule validation enforces. In short: a valid Workspace needs a
|
|
141
|
+
supported `workspace.yaml` — the Workspace marker — plus the `context/`,
|
|
142
|
+
`skills/`, and `profiles/` artifact directories, which setup adds when
|
|
143
|
+
missing; missing categories are treated as empty collections, and present
|
|
144
|
+
ones are validated and ingested normally. `README.md`, `AGENTS.md`, and
|
|
126
145
|
`.gitignore` are optional user-owned files that the engine never requires.
|
|
127
146
|
|
|
128
|
-
When creating a **new** Workspace, `init`
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
- short bootstrap `README.md` and `AGENTS.md` pointers to the current guides
|
|
135
|
-
- a starter `.gitignore`
|
|
136
|
-
|
|
137
|
-
The example gives a new user one complete `install` → `status` → `update` path.
|
|
138
|
-
Delete both `profiles/example.yaml` and `context/example-context.md` together,
|
|
139
|
-
unused empty directories, or bootstrap docs if you prefer a minimal tree;
|
|
140
|
-
later `init` runs do not restore removed optional scaffolding; validation,
|
|
141
|
-
status, update, and uninstall keep working. Do not treat generated Host
|
|
142
|
-
output as source material.
|
|
147
|
+
When creating a **new** Workspace, `init` adds only the required parts and no
|
|
148
|
+
example material (spec #593 DEC-003, ADR-0047). For a complete worked example
|
|
149
|
+
— a bindable `profiles/example.yaml` and its `context/example-context.md` —
|
|
150
|
+
run `apkit guide profile`, which prints both files' example bytes, or see
|
|
151
|
+
`apkit guide context` and `apkit guide skill` for single artifacts. The
|
|
152
|
+
contract's minimal valid Workspace shows all four required parts together.
|
|
143
153
|
|
|
144
154
|
## Author the Workspace
|
|
145
155
|
|
|
156
|
+
The Workspace contract (run `apkit guide --contract`) states the complete
|
|
157
|
+
authoring format: Context Module identity and delivery, the Skill package
|
|
158
|
+
rules, the Profile shape, and model-invocation policy. This guide covers how
|
|
159
|
+
that material reaches each agent.
|
|
160
|
+
|
|
146
161
|
This release supports Profile Context and Context Modules for Antigravity,
|
|
147
162
|
Codex, Claude Code, Grok, OpenCode, and Pi, and portable Skills for Antigravity,
|
|
148
163
|
Codex, Claude Code, Grok, OpenCode, and Pi. Antigravity Context uses `.agents/rules/`;
|
|
149
164
|
Antigravity, Codex, OpenCode, and Pi Skills install through the qualified shared
|
|
150
165
|
`.agents/skills/<Artifact ID>/` projection after project-surface capability checks;
|
|
151
166
|
Pi and OpenCode resolve other Skills, extensions, and packages through native
|
|
152
|
-
|
|
167
|
+
agent behavior.
|
|
153
168
|
Disabled model-invocation Skills are projected with the shared
|
|
154
169
|
`disable-model-invocation: true` field while explicit `/skill:<Artifact ID>`
|
|
155
170
|
activation (or OpenCode `/<Artifact ID>` command activation) remains available.
|
|
156
|
-
|
|
157
|
-
are not delivered by this release. A Profile must select at least one supported
|
|
158
|
-
artifact overall (Context Module, Skill, or both); no individual category is
|
|
159
|
-
mandatory. Context-only, Skills-only, and combined Profiles are valid.
|
|
160
|
-
|
|
161
|
-
A Context Module is a Markdown file under `context/` with frontmatter containing
|
|
162
|
-
one stable, lowercase kebab-case `id`; the Markdown body is the Context. A Skill
|
|
163
|
-
is a standard Agent Skills package under `skills/`, rooted at `SKILL.md`; its
|
|
164
|
-
standard `name` is its stable Artifact ID. The frontmatter needs a lowercase
|
|
165
|
-
hyphenated `name` and a non-empty `description`. Scripts, references, and assets
|
|
166
|
-
remain ordinary standard Skill content. If a Skill needs Agent Profile Kit-only
|
|
167
|
-
dependency metadata, put it in an optional `agent-profile-kit.yaml` sidecar.
|
|
171
|
+
Agents, Hooks, and Tools are not delivered by this release.
|
|
168
172
|
|
|
169
173
|
### Skill model-invocation policy
|
|
170
174
|
|
|
171
|
-
By default,
|
|
175
|
+
By default, agents may invoke a Skill implicitly when the model matches its
|
|
172
176
|
description. To require explicit user invocation while keeping the Skill
|
|
173
|
-
available on request, set
|
|
177
|
+
available on request, set the standard top-level `disable-model-invocation`
|
|
178
|
+
field in `SKILL.md`:
|
|
174
179
|
|
|
175
180
|
```yaml
|
|
176
|
-
|
|
177
|
-
agent-profile-kit.model-invocation: disabled
|
|
181
|
+
disable-model-invocation: true
|
|
178
182
|
```
|
|
179
183
|
|
|
180
|
-
|
|
181
|
-
`
|
|
184
|
+
The field is a boolean: `true` disables model invocation, and absence (or
|
|
185
|
+
`false`) allows it; non-boolean values fail at Workspace ingestion with the
|
|
186
|
+
fix.
|
|
182
187
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
validate, status, or update.
|
|
188
|
+
The standard field is the only policy authority (ADR-0018); the Workspace
|
|
189
|
+
contract states the full rule set, including the retired
|
|
190
|
+
`agent-profile-kit.model-invocation` metadata key and the accepted-and-ignored
|
|
191
|
+
other top-level fields. The Installer never rewrites
|
|
192
|
+
Workspace `SKILL.md` during validate, status, or update.
|
|
189
193
|
|
|
190
|
-
Adapters translate the trusted policy only in generated
|
|
194
|
+
Adapters translate the trusted policy only in generated agent output:
|
|
191
195
|
|
|
192
196
|
| Canonical policy | Claude / Grok generated output | Antigravity / Codex / OpenCode / Pi shared output |
|
|
193
197
|
| --- | --- | --- |
|
|
194
|
-
| `allowed` (default) | No
|
|
198
|
+
| `allowed` (default) | No agent restriction field | No agent restriction field |
|
|
195
199
|
| `disabled` | `disable-model-invocation: true` in generated `SKILL.md` | `disable-model-invocation: true` in generated `SKILL.md` plus `policy.allow_implicit_invocation: false` in generated `agents/openai.yaml` and `"permission": { "skill": { "<id>": "deny" } }` in generated `.opencode/opencode.jsonc` |
|
|
196
200
|
|
|
197
201
|
Existing source `agents/openai.yaml` content is preserved. An equivalent
|
|
198
202
|
invocation policy coalesces; malformed, wrong-type, or conflicting policy
|
|
199
203
|
produces one structured project Blocker naming the Workspace and shared
|
|
200
|
-
|
|
204
|
+
Agent-policy authorities with a Workspace repair remedy before any project write. Generated
|
|
201
205
|
policy fields carry short deterministic comments. When any selected Skill
|
|
202
206
|
disables model invocation, update-time capability probing checks each selected
|
|
203
|
-
|
|
207
|
+
agent's enforcement floor: Claude Code CLI
|
|
204
208
|
`2.0.64+` (same floor as unscoped rules and native Skill discovery, which
|
|
205
209
|
honors `disable-model-invocation`), Grok CLI `0.2.0+` (same floor as project
|
|
206
210
|
rules and native Skill discovery, which honors `disable-model-invocation`),
|
|
@@ -219,43 +223,48 @@ shapes. Probing is advisory: an older, missing, or unreadable CLI produces a
|
|
|
219
223
|
warning, and the planned policy fields are written regardless — the Adapter
|
|
220
224
|
never silently omits or weakens what it plans.
|
|
221
225
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
persisted in Installation State.
|
|
228
|
-
|
|
229
|
-
A Profile is a YAML file under `profiles/` with exactly an `id`, a `context`
|
|
230
|
-
array, and a `skills` array. At least one of `context` or `skills` must be
|
|
231
|
-
non-empty. A Skills-only Profile installs only selected Skill packages for Hosts that
|
|
226
|
+
Profiles are the only place that says what gets installed together (ADR-0045):
|
|
227
|
+
list each needed Context Module and Skill explicitly. A Profile's `context`
|
|
228
|
+
and `skills` lists install exactly what they name — nothing is pulled in
|
|
229
|
+
transitively. The Workspace contract states the Profile shape; a
|
|
230
|
+
Skills-only Profile installs only selected Skill packages for agents that
|
|
232
231
|
support them and Installer lifecycle metadata—no Context snapshot, Codex
|
|
233
232
|
SessionStart hooks, or Claude Context rule. Antigravity Skills-only bindings
|
|
234
|
-
check only the shared `.agents` and `.agents/skills` surfaces.
|
|
233
|
+
check only the shared `.agents` and `.agents/skills` surfaces. Agent capability
|
|
235
234
|
probing is scoped to the selected categories (Skills-only does not require Context
|
|
236
|
-
machinery).
|
|
235
|
+
machinery). Renaming a Profile file renames its ID; Project Bindings select
|
|
236
|
+
Profiles by that name.
|
|
237
|
+
|
|
238
|
+
Rollback caveat: this Profile shape is a **CLI 0.208.0+** acceptance change.
|
|
239
|
+
A Workspace whose Profiles carry no `id` line fails validation on an older
|
|
240
|
+
binary — before rolling a CLI back, re-add an `id` line matching each
|
|
241
|
+
Profile's file name, or keep every shared Workspace on 0.208+.
|
|
237
242
|
|
|
238
243
|
```md
|
|
239
|
-
|
|
240
|
-
id: engineering-rules
|
|
241
|
-
dependencies:
|
|
242
|
-
- type: context
|
|
243
|
-
id: security-rules
|
|
244
|
-
---
|
|
244
|
+
<!-- context/engineering-rules.md -->
|
|
245
245
|
Keep project facts in the project repository.
|
|
246
|
-
```
|
|
247
246
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
dependencies:
|
|
251
|
-
- type: skill
|
|
252
|
-
id: write-release-notes
|
|
247
|
+
<!-- context/engineering/review-findings.md -->
|
|
248
|
+
Review findings and the reasoning behind them.
|
|
253
249
|
```
|
|
254
250
|
|
|
251
|
+
A Context Module is a plain Markdown file: no frontmatter is required or
|
|
252
|
+
read (the Workspace contract states the full rule). A Context file that still
|
|
253
|
+
carries frontmatter from an earlier release
|
|
254
|
+
is valid — its bytes are delivered as written — and you can delete the
|
|
255
|
+
frontmatter at your leisure.
|
|
256
|
+
|
|
257
|
+
Rollback caveat: Context path identity is a **CLI 0.210.0+** acceptance
|
|
258
|
+
change. A Workspace whose Context Modules carry no frontmatter `id` fails
|
|
259
|
+
validation on an older binary — before rolling a CLI back, re-add an `id`
|
|
260
|
+
line matching each file's path-derived ID, or keep every shared Workspace on
|
|
261
|
+
0.210+.
|
|
262
|
+
|
|
255
263
|
```yaml
|
|
256
|
-
|
|
264
|
+
# profiles/coding.yaml
|
|
257
265
|
context:
|
|
258
266
|
- engineering-rules
|
|
267
|
+
- engineering/review-findings
|
|
259
268
|
skills:
|
|
260
269
|
- review-pr
|
|
261
270
|
```
|
|
@@ -275,8 +284,7 @@ description: Review a pull request. Use when asked to review code changes.
|
|
|
275
284
|
---
|
|
276
285
|
name: to-spec
|
|
277
286
|
description: Turn the current conversation into a spec.
|
|
278
|
-
|
|
279
|
-
agent-profile-kit.model-invocation: disabled
|
|
287
|
+
disable-model-invocation: true
|
|
280
288
|
---
|
|
281
289
|
|
|
282
290
|
# To spec
|
|
@@ -287,22 +295,22 @@ metadata:
|
|
|
287
295
|
Project Bindings live only in machine-local
|
|
288
296
|
`~/.agents/agent-profile-kit/config.yaml`. Each binding names exactly one
|
|
289
297
|
existing absolute or home-relative project root, one Profile, and a non-empty set
|
|
290
|
-
of supported
|
|
298
|
+
of supported agents (`antigravity`, `codex`, `claude`, `grok`, `opencode`, `pi`). Agent order
|
|
291
299
|
and duplicate entries normalize at ingestion. There are no wildcards, recursive scans,
|
|
292
|
-
hidden default projects,
|
|
300
|
+
hidden default projects, agent auto-detection, per-session Profile selection, or
|
|
293
301
|
Profile version pins. A project root may appear in only one binding.
|
|
294
302
|
|
|
295
303
|
Hand-edit `config.yaml`, or record one binding and install it in one action
|
|
296
304
|
with `apkit install` (confirms interactively; `--auto-confirm` answers it):
|
|
297
305
|
|
|
298
306
|
```sh
|
|
299
|
-
apkit install coding --
|
|
300
|
-
apkit install coding ~/projects/tools/agent-profile-kit --
|
|
307
|
+
apkit install coding --agent codex --auto-confirm
|
|
308
|
+
apkit install coding ~/projects/tools/agent-profile-kit --agent antigravity --agent codex --agent claude --agent grok --agent opencode --agent pi --auto-confirm
|
|
301
309
|
```
|
|
302
310
|
|
|
303
311
|
Omit the project argument to use the current working directory. At least one
|
|
304
|
-
`--
|
|
305
|
-
Profile or
|
|
312
|
+
`--agent` flag is required. An identical installation is left unchanged; a different
|
|
313
|
+
Profile or agent set for the same project replaces the installation in the same
|
|
306
314
|
action. Do not
|
|
307
315
|
hand-edit `config.yaml` while `install` is running: cooperating lifecycle commands
|
|
308
316
|
serialize, but a text editor does not participate in that lock. Installing a
|
|
@@ -341,13 +349,13 @@ bindings:
|
|
|
341
349
|
|
|
342
350
|
For Codex bindings that select Context, the Adapter requires Codex CLI 0.145.0 or
|
|
343
351
|
newer so the generated SessionStart handler can deliver the complete Context
|
|
344
|
-
envelope without Codex's default head-and-tail spill.
|
|
352
|
+
envelope without Codex's default head-and-tail spill. Agent capability probing is
|
|
345
353
|
advisory: during `update`, an older, missing, or unreadable Codex CLI produces a
|
|
346
354
|
warning while the planned project and Installation State writes proceed
|
|
347
|
-
regardless. `status` performs no
|
|
355
|
+
regardless. `status` performs no agent process execution and no capability
|
|
348
356
|
probing; a Project-scoped `status` or `update` plans only its
|
|
349
357
|
selected binding. `update --all` writes every selected Project including any with
|
|
350
|
-
|
|
358
|
+
agent capability warnings; global Blockers still stop every fleet write.
|
|
351
359
|
Skills-only Codex bindings do
|
|
352
360
|
not require this floor. Review and trust the generated project SessionStart hook
|
|
353
361
|
in Codex for each bound project. Lifecycle hooks are enabled by default. Agent Profile Kit checks the effective global and project configuration
|
|
@@ -380,8 +388,8 @@ directory, one explicit existing absolute or home-relative bound Project root,
|
|
|
380
388
|
or `--project <path>`; `--all` states the fleet scope explicitly. Scoped
|
|
381
389
|
planning, Git and ownership inspection, reconciliation, reports,
|
|
382
390
|
and writes exclude unrelated Projects; a shared Git exclusion file changes only
|
|
383
|
-
through the selected installation's contribution-aware union.
|
|
384
|
-
probing is advisory and happens only during `update`: a missing or outdated
|
|
391
|
+
through the selected installation's contribution-aware union. Agent capability
|
|
392
|
+
probing is advisory and happens only during `update`: a missing or outdated agent
|
|
385
393
|
CLI produces a warning and the planned output is written regardless; capability
|
|
386
394
|
problems never block application and do not mark generated files as drifted.
|
|
387
395
|
|
|
@@ -396,7 +404,7 @@ Installation output must be exclusively Installer-owned.
|
|
|
396
404
|
Git is optional. For a Git binding, `update` installs only into the exact bound
|
|
397
405
|
project directory. The Installer uses Git for tracked-path protection and local
|
|
398
406
|
exclusions but does not inspect or report worktree topology. Bind any additional
|
|
399
|
-
root explicitly only when
|
|
407
|
+
root explicitly only when agents must be launched directly from that root; it
|
|
400
408
|
then follows the same lifecycle as any other binding.
|
|
401
409
|
|
|
402
410
|
For every bound project root, the ordinary removal order is:
|
|
@@ -422,9 +430,9 @@ independently changed generated file only with your explicit consent. The
|
|
|
422
430
|
claimed OpenCode configuration file carries the same generated-source notice
|
|
423
431
|
with project-file guidance instead of the Workspace pointer. Supporting Skill
|
|
424
432
|
resources keep their bytes. See ADR-0041. Unrelated project files,
|
|
425
|
-
repository-owned instructions, global
|
|
433
|
+
repository-owned instructions, global agent configuration, authentication, trust,
|
|
426
434
|
approvals, plugins, and sessions remain untouched. Agent Profile Kit does not
|
|
427
|
-
merge selected fields into
|
|
435
|
+
merge selected fields into agent or repository configuration, install a watcher or
|
|
428
436
|
Git hook, or modify shared `.gitignore` files.
|
|
429
437
|
|
|
430
438
|
For a currently bound installation, `update` recreates a
|
|
@@ -434,24 +442,29 @@ still matches its recorded hash; when no recorded root matches, ownership
|
|
|
434
442
|
continuity cannot be proven and `status` blocks until you restore or remove the
|
|
435
443
|
generated files. Unexpected directory members are never overwritten.
|
|
436
444
|
|
|
437
|
-
## Use
|
|
445
|
+
## Use agents natively
|
|
438
446
|
|
|
439
447
|
After `update`, launch Antigravity, Codex, Claude Code, Grok, OpenCode, or Pi from the
|
|
440
448
|
bound project the way you normally would. Agent Profile Kit does not manage their
|
|
441
449
|
authentication, trust, approvals, plugins, or sessions, and does not launch
|
|
442
|
-
|
|
450
|
+
agents.
|
|
443
451
|
|
|
444
452
|
### Antigravity
|
|
445
453
|
|
|
446
454
|
Antigravity receives Profile Context through deterministic always-on rules under
|
|
447
455
|
`.agents/rules/`. The Adapter requires `agy` CLI 1.1.13 or newer and writes one
|
|
448
456
|
rule for the Profile envelope followed by one complete rule per Context Module.
|
|
457
|
+
A nested Context Module ID's `/` separators become `.` in the rule file name
|
|
458
|
+
(the ID itself is preserved in the rule's boundary markers); each rule file
|
|
459
|
+
stays directly inside `.agents/rules/`.
|
|
449
460
|
Each generated rule contains `trigger: always_on` frontmatter and must stay at or
|
|
450
461
|
below 12,000 characters. If one Context Module is too large, status reports a
|
|
451
|
-
structured blocker instead of truncating it.
|
|
462
|
+
structured blocker instead of truncating it. A Context Module's own frontmatter,
|
|
463
|
+
when it has any, is delivered as written inside the rule's boundary markers and
|
|
464
|
+
never replaces the generated `trigger: always_on` frontmatter.
|
|
452
465
|
|
|
453
466
|
Antigravity discovers the rules from the current bound project; you do not need
|
|
454
|
-
to create or select an Antigravity Project. Trust is
|
|
467
|
+
to create or select an Antigravity Project. Trust is agent-owned: after `update`,
|
|
455
468
|
trust the bound project in Antigravity if it asks. Agent Profile Kit does not
|
|
456
469
|
read or change trust, settings, authentication, plugins, Project records,
|
|
457
470
|
`AGENTS.md`, or `GEMINI.md`. A standing trust reminder appears for every
|
|
@@ -464,7 +477,7 @@ each `SKILL.md` body after frontmatter (ADR-0041) — and, for disabled Skills,
|
|
|
464
477
|
both the generated `disable-model-invocation: true` field and Codex
|
|
465
478
|
`agents/openai.yaml` policy.
|
|
466
479
|
Antigravity's native discovery, trust, settings, and effective inventory remain
|
|
467
|
-
|
|
480
|
+
agent-owned.
|
|
468
481
|
|
|
469
482
|
### Codex
|
|
470
483
|
|
|
@@ -473,7 +486,7 @@ discovers selected Skills under `.agents/skills/<Artifact ID>/`. When Context is
|
|
|
473
486
|
installed, Codex asks you to review the generated hook: review its contents and
|
|
474
487
|
approve it when they match the expected SessionStart behavior, because declining
|
|
475
488
|
it prevents Profile Context from loading. Before launching Codex,
|
|
476
|
-
trust each bound project in Codex — project trust is
|
|
489
|
+
trust each bound project in Codex — project trust is agent-owned and is not
|
|
477
490
|
configured by Agent Profile Kit.
|
|
478
491
|
Ordinary launches from a Git project's bound directory or its descendants receive
|
|
479
492
|
that material. For a non-Git project, launch Codex from the exact bound root;
|
|
@@ -496,9 +509,8 @@ Context writes; Skill-bearing Profiles instead prove the shared `.agents` and
|
|
|
496
509
|
`.agents/skills` surfaces. Profiles with portable Skills receive one shared
|
|
497
510
|
package per resolved Artifact ID under `.agents/skills/<Artifact ID>/`;
|
|
498
511
|
standard package bytes and modes are preserved apart from the generated-source
|
|
499
|
-
notice that opens each projected `SKILL.md` body (ADR-0041)
|
|
500
|
-
|
|
501
|
-
the package carries every required Host policy field without adding consumer
|
|
512
|
+
notice that opens each projected `SKILL.md` body (ADR-0041). Codex and Pi co-own one normalized package when both are selected;
|
|
513
|
+
the package carries every required agent policy field without adding consumer
|
|
502
514
|
metadata to Skill source. Pi owns Skill resolution across personal, project,
|
|
503
515
|
ancestor, package, extension, and configured sources. Disabled
|
|
504
516
|
model-invocation Skills receive top-level `disable-model-invocation: true` in
|
|
@@ -506,7 +518,7 @@ generated `SKILL.md` while the canonical Workspace source remains unchanged
|
|
|
506
518
|
and explicit `/skill:<Artifact ID>` activation remains available. Malformed or
|
|
507
519
|
unreadable relevant settings warn without blocking. Pi's native project trust,
|
|
508
520
|
authentication, settings, prompt files, and per-session overrides remain
|
|
509
|
-
|
|
521
|
+
agent-owned.
|
|
510
522
|
|
|
511
523
|
### OpenCode
|
|
512
524
|
|
|
@@ -518,7 +530,7 @@ user-authored slots via native additive merging, and the Project-relative
|
|
|
518
530
|
reference continues to load Context when OpenCode is launched from any subdirectory.
|
|
519
531
|
The OpenCode Adapter requires CLI 1.18.23 or newer. When configuration is planned
|
|
520
532
|
(Context or disabled Skills), the Adapter emits one transition launch-constraint
|
|
521
|
-
|
|
533
|
+
Agent setup step tied to `.opencode/opencode.jsonc` reminding you to restart
|
|
522
534
|
running OpenCode sessions.
|
|
523
535
|
|
|
524
536
|
OpenCode discovers selected Skills through the qualified shared
|
|
@@ -531,13 +543,13 @@ remains available. When Claude and OpenCode are co-selected in a Project Binding
|
|
|
531
543
|
with Skills, OpenCode natively discovers Skills under both `.claude/skills` and
|
|
532
544
|
`.agents/skills` and reports duplicate Skill names; the OpenCode Adapter emits
|
|
533
545
|
one non-blocking diagnostic warning naming both roots. OpenCode's native
|
|
534
|
-
discovery, configuration slots, and session commands remain
|
|
546
|
+
discovery, configuration slots, and session commands remain agent-owned.
|
|
535
547
|
|
|
536
548
|
### Precedence and conflicts
|
|
537
549
|
|
|
538
550
|
Repository-owned project instructions take precedence over Profile Context on
|
|
539
551
|
conflict. Agent Profile Kit does not detect or resolve contradictions in prose;
|
|
540
|
-
conflicting guidance remains visible to you and the
|
|
552
|
+
conflicting guidance remains visible to you and the agent. Global agent
|
|
541
553
|
configuration and repository-owned files stay live and unchanged.
|
|
542
554
|
|
|
543
555
|
### Installation State compatibility and recovery
|
|
@@ -576,9 +588,9 @@ ownership you independently verify, including any
|
|
|
576
588
|
recreate the desired Project Bindings and run `apkit update` to establish fresh
|
|
577
589
|
ownership receipts. This manual path is intentionally fail-closed.
|
|
578
590
|
|
|
579
|
-
###
|
|
591
|
+
### Agent resolution and project-bound Profiles
|
|
580
592
|
|
|
581
|
-
This section is the
|
|
593
|
+
This section is the agent-path detail for the
|
|
582
594
|
[Universal Workspace material](#universal-workspace-material) boundary.
|
|
583
595
|
|
|
584
596
|
Agent Profile Kit installs selected Skills only into the bound **project**
|
|
@@ -586,11 +598,11 @@ Agent Profile Kit installs selected Skills only into the bound **project**
|
|
|
586
598
|
`.claude/skills/<Artifact ID>/` for Claude, `.grok/skills/<Artifact ID>/` for
|
|
587
599
|
Grok). Antigravity Profile Context uses `.agents/rules/` alongside its shared
|
|
588
600
|
Skill packages. It never installs into, adopts, disables, or removes
|
|
589
|
-
personal/global
|
|
601
|
+
personal/global agent Skill folders. Unselected Workspace
|
|
590
602
|
Skills are not installed into projects either; they may remain valid Workspace
|
|
591
603
|
source without any APK-managed delivery.
|
|
592
604
|
|
|
593
|
-
Those global folders remain
|
|
605
|
+
Those global folders remain agent-owned:
|
|
594
606
|
|
|
595
607
|
- Codex: `~/.agents/skills/` and `~/.codex/skills/`
|
|
596
608
|
- Claude Code: `~/.claude/skills/`
|
|
@@ -600,12 +612,12 @@ Those global folders remain Host-owned:
|
|
|
600
612
|
- Pi: `~/.pi/skills/` (plus configured sources)
|
|
601
613
|
|
|
602
614
|
Selected Skills may share an identity with material from these roots, packages,
|
|
603
|
-
plugins, extensions, compatibility sources, or other
|
|
604
|
-
The
|
|
615
|
+
plugins, extensions, compatibility sources, or other agent-native locations.
|
|
616
|
+
The agent owns discovery, precedence, deduplication, collision diagnostics, and
|
|
605
617
|
resolution across those sources. Agent Profile Kit neither scans an effective
|
|
606
618
|
inventory nor asks you to remove same-identity material.
|
|
607
619
|
|
|
608
|
-
Where a disable is detectable without reconstructing
|
|
620
|
+
Where a disable is detectable without reconstructing agent resolution, the
|
|
609
621
|
Adapter warns: Codex checks SessionStart hooks and Grok checks
|
|
610
622
|
`[skills].disabled` and `[skills].ignore`. Malformed or unreadable
|
|
611
623
|
configuration that an Adapter reads for planned output also warns; Pi's
|
|
@@ -618,12 +630,12 @@ planned project destination remain blockers.
|
|
|
618
630
|
Use `apkit status` for the bound Project containing the current directory, pass
|
|
619
631
|
one explicit Project root, or use `apkit status --all` to inspect every binding.
|
|
620
632
|
It reports current, not installed, stale source, drifted output (including wholly absent
|
|
621
|
-
owned output), malformed ownership, and blocked installations, while keeping
|
|
633
|
+
owned output), malformed ownership, and blocked installations, while keeping agent
|
|
622
634
|
configuration warnings visible.
|
|
623
635
|
|
|
624
|
-
Use `apkit uninstall --here`, `uninstall --project <path>`, or `uninstall --all` (with `--auto-confirm` non-interactively, plus `--profile <name>`, `--
|
|
636
|
+
Use `apkit uninstall --here`, `uninstall --project <path>`, or `uninstall --all` (with `--auto-confirm` non-interactively, plus `--profile <name>`, `--agent <agent>`, and `--remove-changed` as needed) to remove selected installations and forget their recorded selection. `--agent <agent>` (repeatable) removes only those agents within the scope while the remaining agents keep working. It removes only Installation Receipt-proven output and preserves the Workspace and unselected Projects. It writes no teardown provenance. Because a fully removed Project is forgotten, the next `status` no longer selects it, rather than reporting it as unsafe unexplained missing output.
|
|
625
637
|
|
|
626
|
-
To stop managing a Project but keep its Git-owned files in place, remove its entry from `~/.agents/agent-profile-kit/config.yaml` by hand; the next `update` reconciles the leftovers. Neither path modifies personal/global
|
|
638
|
+
To stop managing a Project but keep its Git-owned files in place, remove its entry from `~/.agents/agent-profile-kit/config.yaml` by hand; the next `update` reconciles the leftovers. Neither path modifies personal/global agent configuration or repository-owned files.
|
|
627
639
|
|
|
628
640
|
Review personal content before publishing this Workspace. Agent Profile Kit does
|
|
629
641
|
not classify private material, and credential values do not belong in a Workspace
|
package/package.json
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-profile-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.237.0",
|
|
4
4
|
"description": "Compose portable agent material into host-native profiles.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/kenneth-liao/agent-profile-kit.git"
|
|
9
|
+
},
|
|
5
10
|
"type": "module",
|
|
6
11
|
"bin": {
|
|
7
12
|
"apkit": "./dist/cli.js"
|
|
@@ -29,12 +34,11 @@
|
|
|
29
34
|
"darwin"
|
|
30
35
|
],
|
|
31
36
|
"devDependencies": {
|
|
37
|
+
"@inquirer/core": "^12.0.3",
|
|
32
38
|
"@types/bun": "^1.4.0",
|
|
33
39
|
"@types/node": "^26",
|
|
34
|
-
"
|
|
35
|
-
"prompts": "^2.4.2",
|
|
36
|
-
"smol-toml": "^1.8.0",
|
|
40
|
+
"smol-toml": "^1.9.0",
|
|
37
41
|
"typescript": "^7.0.2",
|
|
38
|
-
"yaml": "^2.9.
|
|
42
|
+
"yaml": "^2.9.1"
|
|
39
43
|
}
|
|
40
44
|
}
|