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.
@@ -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, Host-native output.
7
- Supported Hosts then load that material through ordinary project discovery.
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 Host preferences,
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 Host configuration.
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 Hosts; only selected (and Dependency-resolved) artifacts from
25
- that Profile enter Installation Receipts and the managed lifecycle
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 Host roots. Global Host delivery is not APK-owned state: it is
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
- a Host Skill root entry to canonical Workspace source—but that delivery is
34
- user-managed Host configuration, not Agent Profile Kit–owned state. Agent
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 Host configuration and
37
- selected into a bound Profile. The Host owns discovery, precedence,
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
- `apkit init` creates an empty, schema-versioned Workspace at the
45
- fixed default path `~/.agents/agent-profile-kit/workspace/` and a version-2
46
- machine-local Local Configuration at `~/.agents/agent-profile-kit/config.yaml`
47
- that explicitly records that path when Local Configuration is absent. Pass one
48
- explicit absolute or home-relative path to choose another destination:
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
- When Local Configuration is absent, an explicit missing or empty non-symlink
55
- destination is fully scaffolded and recorded. A valid existing Workspace,
56
- including a symlink alias, is adopted without changing its source. Rerunning is
57
- safe: it never overwrites the Workspace or current configuration, and it does
58
- not restore optional scaffolding that you removed from a valid Workspace.
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` to upgrade it before using `validate`, `status`, `update`,
86
- `install`, or `uninstall`. Those commands never migrate
87
- the file implicitly: they fail closed with actionable `apkit init`
88
- guidance while leaving migration to the explicit `init` command.
89
-
90
- For a legacy file that omitted `workspace`, migration records the conventional
91
- default `~/.agents/agent-profile-kit/workspace/`. For a legacy file with an
92
- authored path, migration preserves that path. `init` validates the selected
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 initialization scaffolding
137
+ ### Required structure vs optional files
122
138
 
123
- A valid Workspace needs only a supported `workspace.yaml`. That Manifest is the
124
- Workspace marker. Missing artifact directories are treated as empty categories;
125
- present ones are validated and ingested normally. `README.md`, `AGENTS.md`, and
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` still scaffolds a friendly layout so
129
- you can discover where material belongs:
130
-
131
- - artifact directories `profiles/`, `context/`, `skills/`, `agents/`, `hooks/`,
132
- and `tools/` (with `.gitkeep` placeholders)
133
- - a bindable `profiles/example.yaml` and its `context/example-context.md`
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
- Host behavior.
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
- Profiles contain only `id`, `context`, and `skills`; Agents, Hooks, and Tools
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, Hosts may invoke a Skill implicitly when the model matches its
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 optional standard namespaced metadata:
177
+ available on request, set the standard top-level `disable-model-invocation`
178
+ field in `SKILL.md`:
174
179
 
175
180
  ```yaml
176
- metadata:
177
- agent-profile-kit.model-invocation: disabled
181
+ disable-model-invocation: true
178
182
  ```
179
183
 
180
- Accepted values are the strings `allowed` and `disabled`. Absence normalizes to
181
- `allowed`. Invalid types or values fail at Workspace ingestion.
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
- This is the only portable spelling. Host-native top-level
184
- `disable-model-invocation` and Codex-only `agents/openai.yaml` policy are not
185
- canonical source fields for Agent Profile Kit: migrate Host-shaped Skills to
186
- the namespaced metadata key above rather than relying on Host-specific
187
- frontmatter. The Installer never rewrites Workspace `SKILL.md` during
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 Host output:
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 Host restriction field | No Host restriction field |
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
- Host-policy authorities with a Workspace repair remedy before any project write. Generated
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
- Host's enforcement floor: Claude Code CLI
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
- Artifacts may declare required Dependencies with explicit typed references. Put
223
- Context Module Dependencies in their frontmatter and Skill Dependencies in each
224
- Skill's Agent Profile Kit sidecar. Each reference contains `type` (`context` or
225
- `skill`) and its stable `id`. Dependencies are resolved transitively and every resolved reason remains
226
- available in live planning. Inclusion reasons are not
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. Host capability
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). Profiles do not inherit, use wildcards, or carry Host settings.
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
- ```yaml
249
- # skills/review-pr/agent-profile-kit.yaml
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
- id: coding
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
- metadata:
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 Hosts (`antigravity`, `codex`, `claude`, `grok`, `opencode`, `pi`). Host order
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, Host auto-detection, per-session Profile selection, or
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 --host codex --auto-confirm
300
- apkit install coding ~/projects/tools/agent-profile-kit --host antigravity --host codex --host claude --host grok --host opencode --host pi --auto-confirm
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
- `--host` flag is required. An identical installation is left unchanged; a different
305
- Profile or Host set for the same project replaces the installation in the same
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. Host capability probing is
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 Agent Host process execution and no capability
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
- Host capability warnings; global Blockers still stop every fleet write.
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. Host capability
384
- probing is advisory and happens only during `update`: a missing or outdated Host
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 Hosts must be launched directly from that root; it
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 Host configuration, authentication, trust,
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 Host or repository configuration, install a watcher or
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 Hosts natively
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
- Hosts.
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 Host-owned: after `update`,
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
- Host-owned.
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 Host-owned and is not
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), and
500
- `agent-profile-kit.yaml` is omitted. Codex and Pi co-own one normalized package when both are selected;
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
- Host-owned.
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
- Host Setup Step tied to `.opencode/opencode.jsonc` reminding you to restart
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 Host-owned.
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 Host. Global Host
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
- ### Host Resolution and project-bound Profiles
591
+ ### Agent resolution and project-bound Profiles
580
592
 
581
- This section is the Host-path detail for 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 Host Skill folders. Unselected Workspace
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 Host-owned:
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 Host-native locations.
604
- The Host owns discovery, precedence, deduplication, collision diagnostics, and
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 Host Resolution, the
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 Host
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>`, `--host <host>`, and `--remove-changed` as needed) to remove selected installations and forget their recorded selection. `--host <host>` (repeatable) removes only those Hosts within the scope while the remaining Hosts 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.
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 Host configuration or repository-owned files.
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.204.1",
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
- "@types/prompts": "^2.4.9",
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.0"
42
+ "yaml": "^2.9.1"
39
43
  }
40
44
  }