agent-policy-kit 0.3.0 → 0.4.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.
Files changed (51) hide show
  1. package/AGENT_INSTALL.md +126 -42
  2. package/CHANGELOG.md +52 -3
  3. package/README.md +17 -10
  4. package/docs/README.md +46 -0
  5. package/docs/design/2026-11-01-documentation-structure.md +58 -0
  6. package/docs/guide/commands.md +375 -0
  7. package/docs/guide/configurator.md +163 -0
  8. package/docs/guide/getting-started.md +119 -0
  9. package/docs/guide/preferences.md +168 -0
  10. package/docs/guide/privacy.md +76 -0
  11. package/docs/guide/updates-and-removal.md +188 -0
  12. package/docs/maintainers/architecture.md +71 -0
  13. package/docs/maintainers/development.md +93 -0
  14. package/docs/maintainers/model-review.md +101 -0
  15. package/docs/maintainers/release.md +114 -0
  16. package/docs/maintainers/verification.md +95 -0
  17. package/docs/maintainers/website.md +112 -0
  18. package/docs/reference/assistants.md +165 -0
  19. package/docs/reference/model-catalog.md +194 -0
  20. package/docs/reference/ownership.md +177 -0
  21. package/docs/reference/presets.md +128 -0
  22. package/docs/reference/roles.md +157 -0
  23. package/docs/research/2026-11-01-model-review.md +341 -0
  24. package/docs/research/limits-evidence.md +28 -0
  25. package/models/README.md +2 -6
  26. package/models/catalog.json +51 -20
  27. package/package.json +2 -2
  28. package/policies/balanced.json +1 -1
  29. package/policies/fast.json +1 -11
  30. package/policies/quality.json +2 -12
  31. package/site/index.html +28 -19
  32. package/src/inspect.mjs +2 -1
  33. package/src/install.mjs +14 -8
  34. package/src/release.mjs +1 -1
  35. package/src/share.mjs +4 -4
  36. package/docs/architecture.md +0 -17
  37. package/docs/compatibility.md +0 -39
  38. package/docs/configuration-page.md +0 -44
  39. package/docs/deployment.md +0 -33
  40. package/docs/development.md +0 -31
  41. package/docs/installation.md +0 -23
  42. package/docs/limits-evidence.md +0 -24
  43. package/docs/model-catalog.md +0 -102
  44. package/docs/model-updates.md +0 -22
  45. package/docs/npm-release.md +0 -27
  46. package/docs/policy.md +0 -16
  47. package/docs/privacy.md +0 -9
  48. package/docs/recovery.md +0 -13
  49. package/docs/releases.md +0 -40
  50. package/docs/use-cases.md +0 -25
  51. package/docs/verification.md +0 -61
@@ -1,39 +0,0 @@
1
- # Native configuration support
2
-
3
- | AI assistant | Written native configuration | Limits |
4
- |---|---|---|
5
- | ChatGPT (Codex) | User role TOMLs, native subagent defaults/concurrency, routing instructions | Higher-priority project/explicit settings still follow Codex rules |
6
- | Claude (Claude Code) | User role Markdown with model/effort, native default/concurrency env, routing instructions | Force settings and native execution-path exceptions can override the intended mapping |
7
- | Kimi (Kimi Code) | User role Markdown, existing secondary-model pool, per-alias effort, routing instructions | Model-role selection and max concurrency are guidance; provisioned aliases/capabilities are required |
8
- | Gemini (Antigravity) | User role Markdown with Pro/Flash/Flash Lite/inherit tiers and routing instructions | No concrete provider pin, documented per-role effort, or universal native max-three cap |
9
- | Grok (Grok Build) | User role Markdown (read-only roles use permission_mode plan), per-role models and a general-purpose fallback in config.toml, native max_concurrent, routing instructions | No documented per-role effort; subagents use the main session effort. Higher-priority project/explicit settings still follow Grok Build rules |
10
-
11
- These are preferences implemented through native features. APK does not participate in later agent operation and does not enforce policy on every request. avoidModels is guidance. No hook, wrapper or proxy is installed to bypass native limits.
12
-
13
- ## Desktop apps
14
-
15
- Some desktop apps include their own copy of a CLI and do not put it on PATH. On macOS, detection also checks these copies, after PATH and the conventional CLI locations:
16
-
17
- | App | Checked location | Settings it reads |
18
- |---|---|---|
19
- | ChatGPT Desktop (Codex) | `/Applications/ChatGPT.app/Contents/Resources/codex-cli/CodexCLI.app/Contents/MacOS/codex`, and the same path under `~/Applications` | `~/.codex`, the same as the Codex CLI |
20
- | Claude Desktop (Code tab) | `~/Library/Application Support/Claude/claude-code/<version>/<build>/claude.app/Contents/MacOS/claude`, newest version first, and within a version the most recently written build first | `~/.claude`, the same as the Claude Code CLI |
21
-
22
- A client found this way has `origin: "desktop_app"` in detect output. The app must be installed, and the bundled CLI must report a valid version. Settings apply to new desktop sessions.
23
-
24
- These desktop features are not configured:
25
-
26
- - Claude Cowork reads instructions and plugins from your Claude account, not from `~/.claude`.
27
- - ChatGPT conversations outside Codex have no subagent settings.
28
-
29
- Global configuration can be superseded by a project's native settings, session flags, environment or plugins. A fresh client session may be needed. Configured files, native loading and actual provider model execution are separate evidence.
30
-
31
- macOS is the local acceptance host. Linux has a source-isolation gate using bubblewrap and a hosted workflow prepared; hosted runs are pending. Windows application is explicitly unsupported.
32
-
33
- Primary references checked for this design:
34
-
35
- - [Codex native subagents](https://learn.chatgpt.com/docs/agent-configuration/subagents).
36
- - [Claude native subagents](https://code.claude.com/docs/en/sub-agents).
37
- - [Kimi configuration](https://github.com/MoonshotAI/kimi-code/blob/main/docs/en/configuration/config-files.md) and [agent definitions](https://github.com/MoonshotAI/kimi-code/blob/main/docs/en/customization/agents.md).
38
- - [Antigravity native subagents](https://antigravity.google/docs/subagents?tab=cli).
39
- - [Grok Build subagents](https://github.com/xai-org/grok-build/blob/main/crates/codegen/xai-grok-pager/docs/user-guide/16-subagents.md), observed with Grok Build 1.0.70 and an isolated GROK_HOME.
@@ -1,44 +0,0 @@
1
- # Configuration page
2
-
3
- Open site/index.html in Google Chrome. The page is one self-contained HTML file. It has no backend, telemetry, asset requests or native account access. It embeds this release's model catalog, presets, role definitions, getacc.dev palette and licensed Public Sans font.
4
-
5
- ## Four steps
6
-
7
- 1. Add the subagent roles you need. A green check confirms a nonempty role selection. Each question-mark button explains its description and native prompt. Removing a role also removes its configuration rows. Readding it preserves its choices in the current page session.
8
- 2. Add your AI assistants. A green check confirms a nonempty assistant selection. New assistants append to the list. The first becomes active. From the second onward, All is active by default. A manually selected assistant or All stays active during later additions. All configures the selected assistants together. The CLI, not the browser, detects which selected assistants are installed.
9
- 3. Choose a work mode. No mode is selected initially. Each selected assistant needs a chosen mode before the command becomes available. The first choice has no replacement warning. Individual assistant details show every selected role's model and supported effort, followed by that assistant's parallel limit. The shared All view hides these controls. All offers shared presets. Custom can be selected manually and is also set by model or effort edits. Each assistant shows its own mode beneath its name. Individual presets warn before changing that assistant. Replacing genuinely edited values, mixed per-assistant bases or partially chosen modes from All warns before changing all selected assistants. Selecting Custom alone without changing values does not create an overwrite warning. Cancel preserves the choices.
10
- 4. Copy the setup command and run it in a terminal. Incomplete selections identify the missing steps with links. Invalid model settings or per-assistant limits disable copying and clear the previous command. Clipboard failure selects the full command for manual copying.
11
-
12
- The page starts with every subagent role selected and no AI assistant. A completed third step requires selected modes and valid model settings. A fourth green check means the current command was successfully copied, not installed. Configuration changes clear that check; opening another assistant without changing values preserves it. Reset form clears selections, modes, copy status and the URL fragment without changing any installed native files. Light uses 2 parallel subagents, Standard uses 3 and Top-tier uses 2. Selecting a preset restores its models, effort and parallel limit for the targeted assistants. Editing a limit marks only that assistant Custom. Effort buttons fill their section and show supported explicit levels. A dash means no native effort setting. Unpinned values remain unpinned until changed. Kimi roles sharing a model alias share its effort. Gemini offers only native tiers. Other assistants also accept custom native model IDs, subject to CLI and account support.
13
-
14
- The command is pinned to this page's package version. It always expands every selected assistant and role into visible model/effort arguments. Presets fill the form but do not shorten or hide the command. Assistants follow their selected order. --roles carries the selected role IDs and --max-concurrent carries the shared fallback. Optional --chatgpt-max-concurrent, --claude-max-concurrent, --kimi-max-concurrent, --gemini-max-concurrent and --grok-max-concurrent carry independent overrides. Nonempty --avoid-TOOL lists preserve existing model-avoidance guidance. Omitted assistants are not configured.
15
-
16
- Each assistant uses role=model:effort entries. :native means no explicit effort pin. Gemini uses role=tier and Grok uses role=model, both without an effort suffix. The parser splits at the last colon, preserving model IDs that contain colons or @. Every selected role must be present exactly once for every selected assistant. The generated command reports custom provenance because its values are explicit, even when a preset filled the form.
17
-
18
- The complete command is visible in a read-only field that grows to fit its contents. Copy preserves the visible POSIX shell line continuations. Soft wrapping adds no additional newlines. [Native field sizing](https://developer.chrome.com/docs/css-ui/css-field-sizing) handles content and window-size changes without a JavaScript resize helper. The page never executes the command or grants model access.
19
-
20
- Role/assistant changes use native View Transitions with a reduced-motion setting and a synchronous fallback. Section hints are conditional: role guidance after selection, add-more guidance for one assistant, individual-configuration guidance for two or more assistants, mode guidance when available, and Copied in the fourth heading. Changed hints, step markers, editing-scope labels and per-assistant mode captions hold a soft highlight for two seconds, then fade for two seconds. Assistant-caption nodes are reused so switching the editing view does not interrupt a pulse. Identical state does not repeat the animation. Labels retain their size during layout changes. No animation dependency is installed.
21
-
22
- ## Share a setup
23
-
24
- The Max at once field appears only in individual AI assistant details. It accepts whole numbers from 1 to 32. Each assistant retains its own limit while switching the editing view. Model-preset selection restores that assistant's preset limit. Invalid selected-assistant limits block the command and copy action. Invalid cached settings on unselected assistants do not block selected assistants. Kimi and Gemini use the value as guidance rather than a native hard cap.
25
-
26
- Each form edit replaces the current URL fragment with its visible state. Copy the page address to share it. Version 2 fragments contain roles, assistant order, mode/base, selected model/effort pairs, each assistant's limit and editing scope. Version 1 scalar-limit links remain readable. Links from 0.2.0 or earlier that include ChatGPT or Gemini do not open, because those assistants then had the IDs codex and agy. Their exact count is preserved; a count that differs from the current preset makes the restored assistant Custom. It excludes clipboard completion and unselected cached choices. Opening a link restores the form, including unfinished choices and model drafts. Command validation still blocks incomplete or invalid settings.
27
-
28
- src/share.mjs is the pure browser/Node codec. It uses versioned base64url JSON with strict IDs, fields, duplicate-key, size, UTF-8 and release checks. The fragment stays in the browser and needs no database or config lookup service. Invalid or mismatched-release links show an error and cannot produce an applicable command. Missing-step links scroll/focus without overwriting the setup fragment.
29
-
30
- Public friend links require this static page to be hosted, for example on getacc.dev. A local file URL is machine-local; localhost acceptance proves restoration behavior, not public deployment. Each published release should retain its versioned page so old links can use the matching release.
31
-
32
- ## Build and host
33
-
34
- Run npm run build:site after changing the template, shared CSS, role definitions, command codec, version, presets, catalog or changelog. npm run check rejects a stale generated page. Source assets are in site/template.html, site/base.css and site/fonts/. src/explicit.mjs supplies the same pure codec to the CLI and page. The generated HTML needs no server or build step to open.
35
-
36
- Serve site/index.html from any static host. It can become part of getacc.dev without a service or proxy. Publish immutable pages at versioned release paths. A latest landing URL can point to the current one. Set repository/homepage URLs only after the owner creates them.
37
-
38
- The current version is unreleased. Its page labels that status. Before npm publication, use the verified local tarball as described in the [AI operator guide](../AGENT_INSTALL.md). The checks do not publish or deploy anything.
39
-
40
- The introduction matches the README: it states the problem, and a collapsed “Why” section holds the inline limit illustration from scripts/build-limits-chart.mjs and a link to [how it was measured](limits-evidence.md). Native details/summary supports keyboard toggling; opening/closing takes 200 ms and honors reduced motion. The hosted versioned URL preserves release-specific shared links.
41
-
42
- The footer credits Mykola Maksymenko and links to his supplied LinkedIn profile, Agents Can Communicate and Automatis Skills. Package author metadata is the source for the visible byline, title, author tags and static JSON-LD Person/project/page relationship. The canonical URL follows the homepage origin and bundled release version. These links load only when followed; no social widgets or runtime metadata requests are added.
43
-
44
- The latest hosted root can update its interface and author metadata from reviewed main independently of npm publication. Published versioned pages remain exact snapshots. Configuration-sensitive changes must match a published package before the host build accepts them. See [deployment](deployment.md).
@@ -1,33 +0,0 @@
1
- # Website deployment
2
-
3
- The latest configurator at https://agent-policy-kit.trymenow.io/ follows reviewed main after Verify package succeeds. npm publication remains a separate, explicitly authorized operation.
4
-
5
- ## Automatic path
6
-
7
- GitHub Actions runs Deploy configurator after a successful same-repository push verification on main. A successful version-tag verification can retry a site build after a package release. The deployment workflow always checks out main, never the triggering branch or tag's code. It verifies successful main-push CI for the checked-out commit and rechecks the latest main immediately before upload. Stale runs skip; deployments are serialized.
8
-
9
- A merged version bump waits for its release. When the package version has no v-prefixed or bare tag reachable from main, the guard skips the deployment, and the run states that the version is not tagged and published yet. The run does not fail. The tag push after npm publication starts the deployment. A tagged version that npm does not serve yet still fails the build; use the manual retry after publication.
10
-
11
- The production environment permits the main branch only. It has no required-reviewer pause, so normal merges need no manual deployment. workflow_dispatch provides a main-only retry after an external outage or delayed npm publication.
12
-
13
- ## Latest page and archived releases
14
-
15
- The root page uses the current main interface and author metadata. Its declared configuration version and generated command must already exist in npm, and configuration-sensitive source must match that version's reachable Git tag. A model/catalog/role/policy/explicit-option change requires a corresponding configuration release before it can be served.
16
-
17
- The /v/VERSION/ pages are copied byte for byte from reachable release tags. They are not rebuilt with the latest template. Old root share links redirect only to a known same-origin archived release; malformed, unknown and offline links retain safe errors. The root canonical URL stays the project root.
18
-
19
- npm run build:host requires full Git history/tags and anonymous registry access. It refuses unknown files/symlinks in the generated output and stops before replacing dist when release validation fails.
20
-
21
- ## One-time credentials
22
-
23
- The GitHub production environment stores CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN as encrypted environment secrets. The deployment API token needs Workers Scripts edit for the target Cloudflare account. Routing is excluded from the generated CI configuration: domain changes remain explicit infrastructure operations, so the CI token needs no zone, DNS, KV or R2 permissions.
24
-
25
- Do not store the interactive Wrangler OAuth token or refresh token in CI. Create a separate deployment token and keep its value out of Git/npm, logs and artifacts. Cloudflare may scope Workers Scripts edit to the account rather than one Worker; the workflow additionally fixes the target Worker name and checks out trusted main code only.
26
-
27
- Deployment tooling is pinned to Wrangler 4.151.3 and installed with lifecycle scripts disabled before Cloudflare credentials are passed to the upload step. Account secrets are not exposed to PR test jobs.
28
-
29
- ## Validation and retry
30
-
31
- Before upload, the workflow builds the allowlisted static output and verifies current main/CI. After upload, it checks ordinary HTTPS responses against local latest/archive bytes. A failed gate leaves the existing deployment in place. A post-upload HTTP mismatch fails the workflow and needs investigation; it does not silently claim success.
32
-
33
- Use the Deploy configurator workflow's main-only manual retry for transient service failures. No tag, npm package or PR is merged or published by this workflow.
@@ -1,31 +0,0 @@
1
- # Development
2
-
3
- Use Node.js 22.x (22.13+) or 24+ and npm. No build step is required.
4
-
5
- ```sh
6
- npm ci --ignore-scripts --no-audit --no-fund
7
- npm run test:cache
8
- npm run check
9
- npm run test:unit
10
- npm run test:package
11
- ```
12
-
13
- Enable the contributor pre-push check once per clone:
14
-
15
- ```sh
16
- git config core.hooksPath .githooks
17
- ```
18
-
19
- The hook runs npm run check and npm run test:unit before each push that updates a branch or tag. A push that only deletes refs skips both. The hook is not packaged and is unrelated to generated client settings. The packed-package gate runs in CI, and CI also requires the Lint check.
20
-
21
- npm run test:cache primes public dependency metadata on a fresh machine before the offline tarball consumers run. It installs only into a disposable directory and removes it afterward. npm ci alone may cache tarballs without the registry metadata required by a new offline consumer.
22
-
23
- Detection checks desktop app bundles under /Applications. Set AGENT_POLICY_APPLICATIONS_DIR to another absolute directory to replace /Applications. The tests set it, so apps installed on the host do not change their results.
24
-
25
- npm test includes both unit tests and the installed-tarball gate. The gate needs macOS sandbox-exec or Linux bubblewrap. It must actually deny checkout access; unavailable isolation fails rather than skipping. Use a normal approved host if a managed sandbox forbids nesting.
26
-
27
- src/policy.mjs validates shared preferences. src/detect.mjs probes executable identity. Native generation and the installer write ordinary role/config/instruction files. src/setup.mjs coordinates detected clients. src/inspect.mjs reads bounded native subagent fields without writes or executable probing. src/output.mjs formats readable terminal results. bin/agent-policy.mjs retains captured JSON output and supports explicit --json.
28
-
29
- Test with temporary homes. Preserve existing transaction, complete-read-set, rollback, ownership, symlink and privacy checks. The package gate must remove the npm package after setup and verify standalone native configuration consumers still read files with no dependency on package/source/state. Consumer fixtures are not actual native model execution.
30
-
31
- Do not reintroduce hooks, wrappers, plugins, daemons, runtime audits or package paths in generated settings. Receipts/backups belong only to configuration operations. See [support](compatibility.md), [verification](verification.md) and [release preparation](npm-release.md).
@@ -1,23 +0,0 @@
1
- # Configuration commands
2
-
3
- Follow the [AI operator guide](../AGENT_INSTALL.md). npx, a temporary prefix or an installed tarball can run this one-shot configurator. Native files never depend on those locations afterward.
4
-
5
- Use setup --release --preset balanced to preview Standard, a version's default choices; add --apply to configure. --preset fast selects Light and --preset quality selects Top-tier. The [page](../site/index.html) generates explicit role, model, effort and concurrency arguments. Commands are pinned to that page's APK version.
6
-
7
- Interactive terminals show readable results. Captured output remains JSON, and --json always requests JSON. A preview writes nothing. A repeated application reports unchanged clients. Partial results identify the clients that need attention.
8
-
9
- Run `agent-policy show` to read current user-level native subagent settings before or after APK setup. Add `--client chatgpt` for one AI assistant or `--json` for machine output. It needs neither client executables nor APK receipts. Relevant native-home environment variables select the active user profile. An explicit --home selects standard client directories under that home. The command never changes files or calls a model.
10
-
11
- Show reads ChatGPT's Codex TOML roles, Claude/Gemini/Grok Markdown role fields (Grok models come from config.toml [subagents.models]), and Kimi's native secondary-model pool. Kimi APK role mappings and APK concurrency instructions are labeled as guidance. Missing pins stay unspecified. Supported Markdown fields use plain, single-quoted or JSON-compatible double-quoted scalar values. Unsupported role syntax, unsafe files and incomplete reads produce explicit attention statuses and exit code 3. External role-file references, project/managed settings, plugins and session overrides are not resolved. Show displays supported current values even when APK-managed files have local edits. It does not print prompts, credentials, raw configuration or private paths.
12
-
13
- Only genuine detected and selected clients receive files. On macOS, detection also finds the CLIs that ChatGPT Desktop and Claude Desktop include; see [desktop apps](compatibility.md#desktop-apps). A standard native profile is required for automatic setup; nondefault native-home environment roots get a zero-write prerequisite. Explicit --home selects the standard layout under an intentional target. Preserve original --home/--state-dir for later removal.
14
-
15
- Named APK roles and a managed global instruction block configure optional delegation. Main models, credentials, permissions, disabled agent features and unrelated hooks/plugins/settings are preserved. Native capabilities still differ; see [support](compatibility.md).
16
-
17
- Kimi requires provisioned model entries. A missing preferred catalog alias may resolve once to one unambiguous existing alias for the documented upstream model. No aliases/providers/credentials are invented. Actual alias effort capability and main-session behavior are checked before writes. Native model access is not granted by a dropdown.
18
-
19
- Explicit release/custom replacement has no physical uninstall gap. Old ownership is verified, desired files are rendered over the original user baseline, and rollback protects the installed release. Doctor inspects actual applied version/source/preset without needing current presets or canonical preferences.
20
-
21
- After success the npm package can be removed. Native clients may need fresh sessions; no kit launcher is needed. Reinvoke a compatible APK for owned uninstall. Keep private receipts/backups if future removal is desired. [Recovery](recovery.md) handles drift or interrupted transactions without overwriting later user edits.
22
-
23
- The configuration page keeps per-tool limits in individual tool details. Light starts at 2, Standard at 3 and Top-tier at 2. A manual limit marks only that tool Custom. Explicit commands can use --TOOL-max-concurrent overrides alongside the shared --max-concurrent fallback. Preset selection restores its cap as well as its models and effort.
@@ -1,24 +0,0 @@
1
- # How the limit illustration was measured
2
-
3
- The README illustration comes from the author's local Codex session logs (`~/.codex/sessions`). It records one developer's work on one plan. It is not a benchmark.
4
-
5
- ## Method
6
-
7
- Codex logs the weekly limit as `rate_limits.primary.used_percent` together with its reset time. Free limit resets started two separate windows, each from 0%. The illustration compares them:
8
-
9
- | | Without APK | With APK |
10
- |---|---|---|
11
- | Subagent setup | No role settings; about half of subagent tokens ran on GPT-6 Astra, the top model | Roles put most subagent work on GPT-6.1 Sol and GPT-6 Luna |
12
- | Subagents started | 67 | 131 |
13
- | Active work until the limit reached 100% | 5.3 h | 25.0 h |
14
- | Credits per 1M tokens after the limit | 35.3 | 3.0 |
15
-
16
- Active work counts 10-minute intervals that contain at least one model response. Idle time, such as nights, is excluded. The illustration places these hours on 8-hour workdays.
17
-
18
- ## Limits of the comparison
19
-
20
- - The tasks differed between the two windows.
21
- - Main-session effort was mostly xhigh in the first window and mostly high or lower in the second.
22
- - Both windows come from one account and one developer's habits.
23
-
24
- Claude Code logs showed the same pattern. When subagents inherited Opus, they produced 2.7 times as many output tokens as the main session. With roles on Sonnet and Haiku, they produced 0.16 times as many. That "after" sample covers one day.
@@ -1,102 +0,0 @@
1
- # Model catalog and presets
2
-
3
- models/catalog.json is the release snapshot, checked on 2026-10-30 UTC (2026-10-29 in Toronto). It records native selector IDs, effort levels, defaults and primary sources. The same data drives the page and configuration validation. Normal agent work never fetches this catalog.
4
-
5
- | Tool | Current selectable inventory | Evidence |
6
- |---|---|---|
7
- | ChatGPT (Codex) | 9 visible model IDs | CLI 0.166.0 bundled catalog and [official models](https://learn.chatgpt.com/docs/models) |
8
- | Claude (Claude Code) | 14 versioned IDs, 4 family aliases and inherit | [Native model configuration](https://code.claude.com/docs/en/model-config), CLI 2.1.312 |
9
- | Kimi (Kimi Code) | 6 upstream models through preferred native aliases | [Current Kimi Code models](https://www.kimi.com/code/docs/en/kimi-code/models), CLI 2.4.0 provisioned metadata |
10
- | Gemini (Antigravity) | Pro, Flash, Flash Lite and inherit tiers | CLI 1.4.10 parser and [subagent documentation](https://antigravity.google/docs/subagents?tab=cli) |
11
- | Grok (Grok Build) | Grok 4.7, 4.6, 4.5 and Grok Build 0.1 model IDs (checked 2026-11-01) | [xAI models](https://docs.x.ai/developers/models) and [Grok Build subagents](https://github.com/xai-org/grok-build/blob/main/crates/codegen/xai-grok-pager/docs/user-guide/16-subagents.md), CLI 1.0.70 |
12
-
13
- Hidden security/utility models, session modes and private deployments are separate from this native subagent inventory. Custom IDs remain available where the native format supports them.
14
-
15
- ## Kimi's six models
16
-
17
- | Upstream ID | Native effort levels | Default | Role in this release |
18
- |---|---|---|---|
19
- | k3.1-pro | low / high / max | high | Optional flagship; Top-tier top-model switch for code/review/tests |
20
- | k3.1-pro-highspeed | low / high / max | high | Optional faster-output variant |
21
- | k3 | low / high / max | high | Top-tier code, review, tests, exploration and documentation |
22
- | k3-256k | low / high / max | high | Standard implementation, review, tests and docs |
23
- | kimi-for-coding | low / high / max | max | K2.8 Preview; Light, Standard exploration and routine work, Top-tier Task runner |
24
- | kimi-for-coding-highspeed | Fixed thinking; no effort override | Unpinned | Optional K2.7 Code Highspeed |
25
-
26
- Both K3.1 Pro variants require thinking. Kimi documents approximately twice the quota usage for Pro Highspeed versus regular Pro; account tier controls access and context limits. The old kimi.ai/help page still lists only four IDs, so it is not the current inventory source. Native aliases use the kimi-code/ prefix; setup still requires an existing provisioned alias or a unique matching upstream model. It never creates provider credentials.
27
-
28
- Setup refuses an explicit native thinking-disabled setting for either Pro model, including unpinned-effort requests. It leaves that setting intact rather than relying on undocumented force-on behavior.
29
-
30
- ## Native and API capabilities
31
-
32
- The efforts/defaultEffort fields describe native choices. Separate apiEfforts/apiDefaultEffort fields retain API facts where they differ. Codex 0.166.0 does not advertise none in its picker; this does not prove manual TOML rejection. APK conservatively offers and validates the advertised native subset for known IDs. Ultra is recorded separately as a delegating execution mode, not offered as an ordinary effort level.
33
-
34
- Claude Code's native effort matrix omits Opus 4.5 even though its API supports effort. Its page choices therefore omit that override. Alias and inherit rows list possible requested levels; the resolved provider model can clamp or ignore them. Use a versioned ID for predictable model-specific capabilities. Sonnet 4.5 is deprecated on Anthropic-operated platforms, with retirement scheduled for 2026-11-30; partner schedules differ. See [model lifecycle](https://platform.claude.com/docs/en/about-claude/model-deprecations).
35
-
36
- Antigravity's shared documentation has a narrower App table, but the installed CLI 1.4.10 parser explicitly supports flash_lite too. Its wider session model inventory cannot be pinned through the role tier field. Per-role effort is unavailable.
37
-
38
- Account/provider access varies. Custom model IDs remain available for supported native fields. Antigravity accepts only inherit/flash_lite/flash/pro for the native role model field; its broader session model inventory cannot be pinned through this field. Per-role effort is unavailable there. Claude aliases may resolve differently per provider. Unknown defaults are kept as null rather than invented.
39
-
40
- ## How the presets are designed
41
-
42
- These are starting recommendations, reviewed on 2026-10-30. Subagent usage counts against the same plan limits as the main session, and every parallel session adds to it. The presets therefore differ in how much of the plan subagents may use, not in a claimed quality ranking. No comparative task benchmark was run. Vendors' effort labels and subscription usage are not directly comparable, so one role can get different levels in different tools.
43
-
44
- - **Light:** light models for every role, so plan limits last longest. It suits entry plans and many parallel sessions. In ChatGPT and Claude, reviews and test creation receive extra reasoning because checking edge cases differs from executing known steps. Kimi roles share one alias and therefore one effort, kept low to save quota; Gemini has no per-role effort and uses Flash for code and Flash Lite for lighter work.
45
- - **Standard:** stronger implementation, review, test creation and documentation, with light models for fact gathering and mechanical work. Gemini's light tier for exploration and docs is Flash. ChatGPT runs Luna at high for exploration, OpenAI's suggested starting level for Luna; Claude's Haiku explorer uses its native default, medium. No role uses Astra, Fable or K3.1 Pro. Kimi uses K3 256K for code to keep its quota footprint below the full-context K3 variant; larger-context choices remain editable.
46
- - **Top-tier:** Opus 5.5, GPT-6.1 Sol and K3 at high effort for implementation, review and tests. It uses limits fastest and suits top plans with few parallel sessions. Exploration and documentation use the same high-end model; only the Task runner stays lighter. Kimi keeps one effort per shared alias, and because K2.8 has no medium level its Task runner rises from low to high. Gemini has one top tier, Pro, so its Standard and Top-tier differ only in exploration, docs and the Task runner.
47
- - **Top models switch:** under Top-tier, a per-tool switch replaces the Coder, Reviewer and Test writer model with the tool's top model: Fable 5.1, GPT-6 Astra or K3.1 Pro, still at high effort. Gemini and Grok have no such tier. The switch is off by default because these models use limits much faster and native default subagent settings copy the first selected role (the Coder when selected) to subagents started without a named role. It is part of Top-tier, not a separate preset, and share links keep it.
48
-
49
- Top-tier, with or without top models, pins high rather than xhigh or max. Native default subagent settings copy the first selected role (the Coder when selected), so a higher level would also apply to every subagent started without a named role. OpenAI recommends starting Astra at Light and places High and Extra High in the same band for difficult multi-step work. Anthropic describes high as the level for work where verification matters and xhigh as deeper reasoning at higher token spend; high is Fable's native default. Higher levels remain available in Custom.
50
-
51
- No preset bans any model. An unselected model remains available in Custom. Explicit personal avoid lists are still supported in user policy/CLI input. Parallelism defaults are Light 2, Standard 3 and Top-tier 2 for each tool. They bound simultaneous delegation rather than starting tasks or measuring quality. Light keeps short work bounded. Standard allows three independent responsibilities to overlap. Top-tier limits concurrent long-running work on heavier models. These are product defaults, not benchmark results. Each tool can override its limit in its details. Native enforcement varies by client.
52
-
53
- ### Light
54
-
55
- | Role | ChatGPT | Claude | Kimi | Gemini | Grok |
56
- |---|---|---|---|---|---|
57
- | Coder | Luna · medium | Haiku 5.5 · medium | K2.8 Preview · low | Flash | Grok Build 0.1 |
58
- | Reviewer | Luna · high | Haiku 5.5 · high | K2.8 Preview · low | Flash | Grok Build 0.1 |
59
- | Code explorer | Luna · low | Haiku 5.5 · low | K2.8 Preview · low | Flash Lite | Grok Build 0.1 |
60
- | Test writer | Luna · high | Haiku 5.5 · high | K2.8 Preview · low | Flash | Grok Build 0.1 |
61
- | Docs writer | Luna · low | Haiku 5.5 · low | K2.8 Preview · low | Flash Lite | Grok Build 0.1 |
62
- | Task runner | Luna · low | Haiku 5.5 · low | K2.8 Preview · low | Flash Lite | Grok Build 0.1 |
63
-
64
- ### Standard
65
-
66
- | Role | ChatGPT | Claude | Kimi | Gemini | Grok |
67
- |---|---|---|---|---|---|
68
- | Coder | Sol · medium | Sonnet 5.5 · medium | K3 256K · high | Pro | Grok 4.7 |
69
- | Reviewer | Sol · high | Sonnet 5.5 · high | K3 256K · high | Pro | Grok 4.7 |
70
- | Code explorer | Luna · high | Haiku 5.5 · medium | K2.8 Preview · low | Flash | Grok Build 0.1 |
71
- | Test writer | Sol · high | Sonnet 5.5 · high | K3 256K · high | Pro | Grok 4.7 |
72
- | Docs writer | Sol · medium | Sonnet 5.5 · medium | K3 256K · high | Flash | Grok 4.7 |
73
- | Task runner | Luna · low | Haiku 5.5 · low | K2.8 Preview · low | Flash Lite | Grok Build 0.1 |
74
-
75
- ### Top-tier
76
-
77
- | Role | ChatGPT | Claude | Kimi | Gemini | Grok |
78
- |---|---|---|---|---|---|
79
- | Coder | Sol · high | Opus 5.5 · high | K3 · high | Pro | Grok 4.7 |
80
- | Reviewer | Sol · high | Opus 5.5 · high | K3 · high | Pro | Grok 4.7 |
81
- | Code explorer | Sol · high | Opus 5.5 · high | K3 · high | Pro | Grok 4.7 |
82
- | Test writer | Sol · high | Opus 5.5 · high | K3 · high | Pro | Grok 4.7 |
83
- | Docs writer | Sol · high | Opus 5.5 · high | K3 · high | Pro | Grok 4.7 |
84
- | Task runner | Sol · medium | Sonnet 5.5 · medium | K2.8 Preview · high | Flash | Grok Build 0.1 |
85
-
86
- With the top models switch on, Coder, Reviewer and Test writer use Astra · high in ChatGPT, Fable 5.1 · high in Claude and K3.1 Pro · high in Kimi.
87
-
88
- ## Reasons and access requirements
89
-
90
- OpenAI positions Astra for demanding work, Sol for a capability/usage balance and Luna for focused efficient work. Its [selection guidance](https://developers.openai.com/api/docs/guides/model-selection) treats these as starting points to evaluate on representative tasks. APK's Codex effort values still follow the native CLI catalog, not API-only options.
91
-
92
- Anthropic's [model comparison](https://platform.claude.com/docs/en/models/overview) distinguishes Fable, Opus, Sonnet and Haiku by workload and latency. Versioned IDs freeze the recommendation more precisely than moving family aliases. [Claude Code](https://code.claude.com/docs/en/model-config) supports the selected levels and warns of diminishing returns at max. Fable 5.1 requires CLI 2.1.257+ and may consume usage credits depending on the plan. Some non-interactive native paths bill those credits without a consent prompt; APK does not change billing settings or promise a later confirmation. Use Custom to choose another available model.
93
-
94
- [Kimi's model table](https://www.kimi.com/code/docs/en/kimi-code/models.html) describes K2.8 Preview's efficient thinking and the smaller quota footprint of K3 256K. Pro Highspeed has the same capabilities as regular Pro at a quota premium, so it is optional rather than a default for either economical or quality priorities. Selected aliases must be provisioned and Pro must have thinking enabled. Roles sharing one alias share its native effort setting.
95
-
96
- Grok Build 0.1 is xAI's fast coding model and serves light work; Grok 4.7 is the flagship and serves code, review, tests and docs. Light uses Grok Build 0.1 everywhere, Standard adds Grok 4.7 for code, review, tests and docs, and Top-tier also uses it for exploration. Grok 4.6 and 4.5 stay available in Custom. Account access to each model varies by plan. Per-role effort is unavailable, and there is no top models switch for Grok.
97
-
98
- Gemini recommendations use only the native role tiers of Antigravity. The CLI's Pro/Flash/Flash Lite selectors do not freeze the underlying provider model, and there is no per-role effort field. Account access and native precedence still apply; see [support](compatibility.md).
99
-
100
- Native default effort means no explicit override. Unsupported effort fields are omitted. Explicit levels are filtered by model and native client; Kimi additionally checks provisioned support_efforts. It never silently changes the main agent's effort to satisfy a helper's setting.
101
-
102
- For the next release, review the native catalogs and current official docs, update sources/date/data, explain model/task/effort changes in CHANGELOG.md, regenerate the page and rerun configuration/release tests. A configuration test is not a model-quality benchmark. See [maintenance](model-updates.md) and [release preparation](npm-release.md).
@@ -1,22 +0,0 @@
1
- # Keeping model choices current
2
-
3
- The task roles stay stable: worker for implementation, reviewer for findings, explorer for discovery, tester for tests, writer for documentation and routine for prescribed execution. Models and effort values are separate data in policies and models/catalog.json and can evolve without changing those responsibilities.
4
-
5
- Named presets and the dated model/effort catalog follow the npm package version. Record model-choice changes and their review date/sources in CHANGELOG.md when releasing a revised preset. Version 0.1.0 is a starting example, not a live ranking or a benchmark of model quality. Native format checks are recorded in [verification](verification.md).
6
-
7
- ## Before setup or an authorized update
8
-
9
- The installing AI agent should:
10
-
11
- 1. Read the saved preferences and installed client versions. Preserve explicit user choices.
12
- 2. Cross-check the provider's current dedicated model docs with native catalogs or schemas. Older official help pages can lag: Kimi's old help page omitted K3.1 Pro while its current Code Docs and provisioned metadata included it. Keep API capabilities separate from native choices; aliases and session modes are not additional versioned models. Check provisioned aliases without printing credentials.
13
- 3. Compare proposed choices with the saved setup. A newer model is not automatically better for every task, account or usage constraint.
14
- 4. Apply requested changes through the coordinated [preferences update procedure](../AGENT_INSTALL.md). Package installation alone must not rewrite native settings.
15
-
16
- No background updater, live model catalog request, or automatic model replacement runs during normal client use. Existing configured values stay saved until another configuration operation changes them.
17
-
18
- Provider aliases can still resolve to a newer model independently of APK. For example, Claude documents that its [model aliases update over time](https://code.claude.com/docs/en/model-config#model-aliases). Use available versioned identifiers where reproducibility matters and the client/provider supports them. A configured identifier remains distinct from proof of the actual provider model.
19
-
20
- ## Maintainer release check
21
-
22
- Update the preset data, source/date notes and configuration fixtures together. Recheck native schemas, preserve main-session behavior, and run unit plus packed-package acceptance. Do not present configuration tests as model-quality evaluations. All preferences continue to apply only when the main agent chooses to delegate.
@@ -1,27 +0,0 @@
1
- # Prepare a configuration release
2
-
3
- One version: package.json version identifies presets, model catalog, native templates, instructions and page. No second preset-version system. The owner authorizes each publication; nothing publishes automatically. New pull requests must remain draft, and only the owner merges them.
4
-
5
- ## Record what and why
6
-
7
- For every release, update CHANGELOG.md with: date, changed models/efforts/role instructions, why the changes fit the work, who should update, native/client requirements and migration/rollback limits. Record catalog source/date and distinguish configuration checks from model-quality evaluation. Do not claim performance/cost numbers without evidence.
8
-
9
- Patch releases can correct documentation/configuration bugs; intentional recommendation changes deserve clearly described release notes (normally a minor release); incompatible native ownership/layouts require a documented migration boundary. Never rewrite a published version. See [npm publication rules](https://docs.npmjs.com/cli/v11/commands/npm-publish/).
10
-
11
- ## Build and verify before tagging
12
-
13
- 1. Confirm npm name ownership and set actual repository/bugs/homepage URLs once they exist. Do not invent them.
14
- 2. Update package version and lockfile, preset JSON, model catalog/source date and this version's changelog entry. Fill the actual release date when cutting it.
15
- 3. Run npm run build:site. The generated single HTML file embeds that version's exact data and command.
16
- 4. Run npm run check and npm test. Required tarball gates deny source access, remove package/state, and prove two synthetic versions can upgrade/downgrade changed models AND templates safely. Synthetic 0.2.0 is not a real release.
17
- 5. Review npm pack --dry-run --json --ignore-scripts, npm publish --dry-run --ignore-scripts, and the final npm pack tarball/integrity. Private evidence/configs must stay out.
18
-
19
- The package includes CHANGELOG.md and its matching page. Its CLI requires no compilation; only the page data is regenerated. No lifecycle install script mutates native settings.
20
-
21
- After explicit publication authorization, create the corresponding git version tag/release with the reviewed changelog text and publish that exact tarball through npm's normal authenticated process. Publish application and npm releases only from reviewed commits already present in main. Before publication, fetch origin and require git merge-base --is-ancestor HEAD origin/main to succeed. Never merge, mark a draft ready or enable auto-merge. Recheck registry contents and public page links after an authorized release.
22
-
23
- ## Static page
24
-
25
- The latest site deploys automatically from reviewed main after CI, while each published /v/VERSION/ page remains an exact tagged snapshot. npm publication stays explicit. See [website deployment](deployment.md) for configuration guards, archive preservation, credentials and main-only retry.
26
-
27
- The public domain is https://agent-policy-kit.trymenow.io/. The workers.dev address remains available for earlier links. Domain-only infrastructure changes use wrangler triggers deploy and compare deployment/version IDs before and after. CI website deployment deliberately omits routing changes and does not publish npm packages.
package/docs/policy.md DELETED
@@ -1,16 +0,0 @@
1
- # Configuration preferences
2
-
3
- Start with policies/balanced.json or another preset in the selected release. The [JSON Schema](../schema/policy.schema.json) describes data shape; the configuration validator also checks the release catalog's known model/effort compatibility.
4
-
5
- - schemaVersion1; maxConcurrent is the shared fallback, from 1 to 32. Optional clients[tool].maxConcurrent overrides it for one tool. Older policies without overrides keep their shared behavior.
6
- - clients contains chatgpt (Codex), claude (Claude Code), kimi (Kimi Code), gemini (Antigravity) and/or grok (Grok Build). Version 0.2.0 and earlier used the keys codex and agy. They are not accepted.
7
- - Optional top-level selectedRoles is a nonempty unique array of worker, reviewer, explorer, tester, writer and routine IDs. Omit it for all six roles in the executing release. Only selected roles receive native files and routing instructions.
8
- - code/light hold default model+effort pairs.
9
- - Optional roles inside each client overrides each selected role independently. Worker/reviewer/tester otherwise use code; explorer/writer/routine use light. Public presets also contain role-specific overrides.
10
- - avoidModels is delegation guidance. An explicit page choice removes itself from that avoid list.
11
-
12
- Effort null means native behavior without an explicit effort override. Codex effort depends on the native model selector. Claude supports low through max as documented per model. Kimi actual aliases must declare the requested non-null effort. Antigravity's role field supports model tiers, with no per-role effort pin. Grok Build accepts any model ID and always uses effort null.
13
-
14
- A known model cannot request an effort excluded by the release catalog. Custom IDs can use the client's native level set, subject to actual native availability. Kimi can merge null with one explicit pin for a selected shared alias. Contradictory explicit pins are refused. Unselected role defaults do not require Kimi aliases or acquire pins. A section-wide effort conflicting with mixed default/pinned alias behavior is a prerequisite rather than a silent rewrite.
15
-
16
- [Presets/catalog](model-catalog.md) describe recommendations and sources. [Release usage](releases.md) explains explicit default/preset/custom replacement. Only when the main agent chooses delegation do any of these role preferences apply. No subagent feature is enabled by the configurator.
package/docs/privacy.md DELETED
@@ -1,9 +0,0 @@
1
- # Privacy
2
-
3
- The configurator reads local preferences and native configuration, probes CLI version/help identity, writes owned native settings and exits. It does not read transcripts or send prompts to a classifier, proxy or telemetry endpoint. It does not provision or transfer credentials.
4
-
5
- Client settings can contain existing secrets. Transaction backups and receipts are private local state and must never be published. CLI summaries omit configuration bodies, raw executable output, private paths and raw errors.
6
-
7
- There is no runtime audit, session tracking or token journal. Normal agent operation does not call package code. Native clients retain their own provider/account behavior.
8
-
9
- The npm package uses a files allowlist. Tests, development notes, private profiles, evidence and tarballs stay outside it. The acceptance gate uses fresh profiles with fake secret sentinels and denies source access. Fixtures do not establish live account or provider execution.
package/docs/recovery.md DELETED
@@ -1,13 +0,0 @@
1
- # Recovery
2
-
3
- Do not remove a lock or pending journal merely to make configuration proceed. Another operation may own it, or a failed transaction may need its backups.
4
-
5
- The installer stages changes and rechecks the complete read set. A failed commit restores matching postimages. A competing edit is preserved and yields a recovery conflict.
6
-
7
- Private state contains pending.json, .install.lock and backups/TRANSACTION_ID/index.json. Keep the journal and backup index together. The retained lock ID can identify the index if recreating pending.json failed.
8
-
9
- For recovery, ensure no configurator is active, make a private copy of affected files/state, compare current files with recorded preimages/postimages, and reconcile only owned changes. Preserve every later unrelated edit. Remove only the resolved transaction's blocking markers, then rerun a plan. Do not publish config bodies or backup indexes.
10
-
11
- Owned file/block/scalar drift stops removal. Reconcile that exact change rather than restoring a stale whole-file backup. Unknown experimental runtime receipts require the older version's owned uninstall first; never delete arbitrary hooks based on their text.
12
-
13
- Removing or moving the npm package after successful setup is safe. Native files have no package dependency. Reinstall or invoke the configurator with npx for future updates/removal. Preserve private receipts if owned removal is desired.
package/docs/releases.md DELETED
@@ -1,40 +0,0 @@
1
- # Choose and apply a configuration release
2
-
3
- **APK package version = configuration release.** Each published package freezes its named presets/model catalog/efforts, native role templates, instructions, changelog and static configuration page. There is no second preset-version system.
4
-
5
- ## Default settings from a specific release
6
-
7
- Inspect the release and preview its plan:
8
-
9
- ```sh
10
- npx --yes --ignore-scripts --package agent-policy-kit@0.3.0 agent-policy release
11
- npx --yes --ignore-scripts --package agent-policy-kit@0.3.0 agent-policy setup --release
12
- ```
13
-
14
- Apply explicitly:
15
-
16
- ```sh
17
- npx --yes --ignore-scripts --package agent-policy-kit@0.3.0 agent-policy setup --release --preset balanced --apply
18
- ```
19
-
20
- The package you select supplies both preferences and native templates. --release is a boolean, not another version argument. --preset selects fast/balanced/quality; its identity is stored alongside release/source. The same pattern selects an older compatible release for downgrade. Installing/updating an npm package alone does not change native files. Before publication, use that release's verified .tgz instead of the registry package spec.
21
-
22
- ## Your own choices
23
-
24
- Open this release's [configuration page](../site/index.html) in Google Chrome. Its fully expanded per-tool command is pinned to the page's package version. It applies your chosen models through that release's templates. Generated explicit commands record custom provenance, including when the form used a preset. The --release workflow retains named preset provenance.
25
-
26
- --config is bounded canonical base64url UTF-8 JSON. It is data, not executable shell content. Explicit tool arguments, --release/--preset, --config and --policy are alternative input modes. Explicit arguments, --config and --release permit replacement of owned configuration. --policy without those options remains conservative for advanced saved-file workflows.
27
-
28
- ## What happens during an update
29
-
30
- APK verifies old owned files, reconstructs the original user baseline in memory, renders the target, and commits one final change per file. There is no physical uninstall gap. Native prerequisites and drift refuse changes; late failure rolls back the previous installed release. Later unrelated user edits survive. Final uninstall restores original user values rather than the previous APK version's values.
31
-
32
- Transactions are per client. Missing, unsupported or blocked clients retain their actual previous release; successful independent clients may advance. setup results and doctor report each client's applied version/source. The shared state policy is the latest requested snapshot, not proof every client applied it. Doctor verifies receipts without needing that snapshot or today's templates.
33
-
34
- Current native receipt v4 records the selected subset of six bounded role filenames. Native v3 and v2 snapshots remain bounded to their historical four roles and remain supported. An explicit replacement with selectedRoles omitted can expand an earlier setup to all six roles in the chosen release; implicit setup keeps the existing installation unchanged. v2 has unknown release provenance. An older executable can reject v4. Use a receipt-compatible executable before an incompatible downgrade. Unknown future schemas/layouts are refused. An incompatible migration must explain its supported path in that release's notes.
35
-
36
- ## What a release does not freeze
37
-
38
- A release reproduces declared settings and templates. Provider aliases/tiers can resolve to new models, old model IDs can retire, and account access can change. See [model maintenance](model-updates.md). No runtime updater or model gateway is installed.
39
-
40
- Read [CHANGELOG](../CHANGELOG.md) for what changed, why, who should update and migration limits. Versions 0.1.0 and 0.2.0 are published and 0.3.0 is being prepared; synthetic versions in acceptance tests are not real releases.
package/docs/use-cases.md DELETED
@@ -1,25 +0,0 @@
1
- # Examples
2
-
3
- ## Add only reviewers and researchers
4
-
5
- Choose Reviewer and Researcher in the page, then select your AI assistants. APK creates only apk-reviewer and apk-explorer. Later additions can expand this set. Removing a selected role removes its earlier owned definition while preserving unrelated files and edits.
6
-
7
- ## One role scheme across AI assistants
8
-
9
- Choose models for the six focused roles: implementation, review, discovery, tests, documentation and prescribed execution. Presets provide role-specific starting choices. Each tool receives native definitions and delegation instructions; no central dispatcher runs between it and its provider.
10
-
11
- ## Keep your main model
12
-
13
- Apply the shared preferences to delegated helpers while preserving each tool's main model, account, permissions and unrelated setup.
14
-
15
- ## Configure and discard the installer
16
-
17
- Run detected setup with --apply, verify native files, remove the npm package, and start your AI assistants normally. Saved role files and settings keep working through native features.
18
-
19
- ## Customize model choices
20
-
21
- Use init --policy FILE, choose models/efforts actually available in each account, then apply through the AI guide. Kimi needs provisioned aliases; agy choices are tiers. Higher-priority native settings can override global preferences.
22
-
23
- ## Remove after other settings changed
24
-
25
- A later unrelated theme setting remains during owned uninstall. An edited generated role or managed block produces a drift conflict; the configurator preserves it for reconciliation.
@@ -1,61 +0,0 @@
1
- # Verification record
2
-
3
- Configuration checks, native loading and model execution are separate results.
4
-
5
- ## 0.3.0
6
-
7
- macOS arm64, 2026-11-01.
8
-
9
- | Layer | Current evidence |
10
- |---|---|
11
- | Full Node 26.5.1 suite | PASS: 368/368, including source-denied real-tarball gates, desktop app bundle detection and the renamed `chatgpt` and `gemini` IDs. A second run with `/Applications` replaced by a missing directory also passed 368/368, so no test depends on apps installed on the host |
12
- | Hosted CI | PASS on main e8c6ac3: macOS Node 22.13.0 and Ubuntu Node 24 suites plus site-build ([run](https://github.com/automatis-tools/agent-policy-kit/actions/runs/41348755442)) |
13
- | Two synthetic releases | PASS: the actual 0.3.0 tarball and a synthetic 0.4.0 tarball, A to B to A, mixed applied versions, drift safety and original-user restoration |
14
- | Published 0.2.0 to 0.3.0 | PASS in an isolated HOME with the npm 0.2.0 package: ChatGPT/Codex reports `OWNERSHIP_CONFLICT` in both directions until the creating version removes it, then setup succeeds; Claude upgrades to 0.3.0 and moves back to 0.2.0 in place; Grok upgrades in place. Kimi NOT CHECKED with a provisioned model pool |
15
- | Desktop app detection | PASS with the installed apps and a PATH without CLIs: ChatGPT Desktop's bundled `codex-cli 0.166.0-alpha.5.1` and Claude Desktop's bundled Claude Code 2.1.309, both reported as `desktop_app` |
16
- | Browser | PASS in local Chromium previews: the "AI assistants" step empty and with two assistants, its note, the All scope and the generated `--chatgpt` command |
17
- | Native ChatGPT/Claude/Kimi/Gemini/Grok loading and provider execution | NOT CHECKED for 0.3.0; no live model tasks used as configuration proof |
18
- | npm packaging | PASS: `npm pack --dry-run` and `npm publish --dry-run` list 45 files; no private evidence or configuration |
19
- | Current model catalog | Unchanged from 0.2.0 apart from the `chatgpt`/`gemini` keys and general labels: ChatGPT 9 selectors, Claude 19 selectors, Kimi 6 preferred aliases, Gemini 4 Antigravity tiers, Grok 4 model IDs. Account access and model quality are not established by configuration tests. |
20
-
21
- ## 0.2.0
22
-
23
- macOS arm64, 2026-11-01.
24
-
25
- | Layer | Current evidence |
26
- |---|---|
27
- | Full Node 26.5.1 suite | PASS: 350/350, including source-denied real-tarball gates, selected-role native generation, Grok Build files under an isolated GROK_HOME, per-tool limits and expanded page commands |
28
- | Hosted CI | PASS on main 7f8666d: macOS Node 22.13.0 and Ubuntu Node 24 suites plus site-build ([run](https://github.com/automatis-tools/agent-policy-kit/actions/runs/41283600922)) |
29
- | Two synthetic releases | PASS: the actual 0.2.0 tarball and a synthetic 0.3.0 tarball, A to B to A, mixed applied versions, drift safety and original-user restoration |
30
- | Page command via npx | PASS: the generated multiline command runs through a real shell and npx with the local tarball; independent Codex 5 and Claude 2 limits and Grok Build values are read back from native files |
31
- | Preset audit | PASS: an independent review compared every preset, tool and role with the catalog and documentation and found no data defects; wording fixes were applied, and a test keeps the documentation tables in sync |
32
- | Grok Build discovery | PASS: `grok inspect --json` with Grok Build 1.0.70 lists an `apk-*` agent from an isolated GROK_HOME. Model selection and execution NOT CHECKED |
33
- | Native Codex/Claude/Kimi/Antigravity loading and provider execution | NOT CHECKED for 0.2.0; no live model tasks used as configuration proof |
34
- | Browser | The owner reviewed local previews manually; no automated browser run for 0.2.0 |
35
- | npm packaging | PASS: `npm pack --dry-run` and `npm publish --dry-run` list 42 files; no private evidence or configuration |
36
- | Current model catalog | Codex 9 selectors, Claude 19 selectors, Kimi 6 preferred aliases, Antigravity CLI 4 tiers, Grok Build 4 model IDs. Account access and model quality are not established by configuration tests. |
37
-
38
- ## 0.1.0
39
-
40
- macOS arm64, 2026-10-30.
41
-
42
- | Layer | Current evidence |
43
- |---|---|
44
- | Full Node 26.5.1 suite | PASS: 248/248, including both source-denied real-tarball gates, selected-role native generation, v2/v3/v4 ownership and expanded page commands |
45
- | Minimum Node 22.13.0 suite | PASS: 248/248, using the checksum-verified official runtime outside the denied source checkout |
46
- | Two synthetic releases | PASS: actual 0.1.0/0.2.0 tarballs, changed model and shared role/instruction definitions, A to B to A, mixed applied versions, late replacement rollback, drift safety and original-user restoration |
47
- | Page-selected roles via npx | PASS: the shipped page formatter produced explicit Reviewer/Researcher options for selected Codex/Claude fixtures, including independent effort. The actual multiline command ran through a real shell and npx with the local tarball offline. Unselected installed tools stayed unchanged. Later role reduction/removal succeeded. A late failure after role deletion restored the complete prior installation. |
48
- | Package/state removal | PASS: native files and standalone consumer fixtures remain readable without package/source/state |
49
- | Desktop Google Chrome | PASS: approved four-step layout, empty/missing/error/ready states, per-tool modes, append order, automatic All/manual scope, synced role rows, visible per-tool model/effort arguments, actual clipboard copy, denied-clipboard fallback and stale-copy protection |
50
- | Custom input browser regression | PASS: real typing followed directly by effort or Copy clicks, without Tab, works with reduced motion. The earlier lost-click case was reproduced before the fix. Normal/reduced/fallback motion checks are recorded separately from model execution. |
51
- | Independent review | PASS: independent URL codec/controller review and scoped final animation/hover/label-cache review. Preset/role integration review found and verified fixes for six-role schema bounds and live Custom Fable notices. Fresh targeted checks passed 76/76; full suites passed 248/248 on both runtimes. |
52
- | URL/checklist behavior | PASS in local HTTP Chrome tabs: exact command restored from a shared link, imported copy remains incomplete, Reset clears state/hash, no default radio, first mode choice skips warning, Custom-only toggle skips unnecessary overwrite warning while genuine edits/mixed bases/cap remain protected, view-only navigation preserves copy, settings changes clear it, invalid links remain non-applicable. Hint/marker keyframes hold at offsets 0–0.5 and fade by offset 1 over 4000 ms. |
53
- | Current model catalog | Dated release snapshot: Codex 9 selectors, Claude 19 selectors, Kimi 6 preferred aliases, Antigravity CLI 4 tiers. API effort metadata is separate. Account access and model quality are not established by configuration tests. |
54
- | Native Codex/Antigravity loading | Historical parser/listing positive and malformed negative controls only. New subset behavior has file/consumer fixtures, not fresh vendor-client loading proof. |
55
- | Native Claude/Kimi loading and provider execution | NOT CHECKED; no live model tasks used as configuration proof |
56
- | Six-role compatibility | PASS: legacy four-role v2/v3/v4 inspection, owned removal, explicit expansion to six, drift refusal and late rollback; six-alias Kimi v4 plans/inspects/removes 14 bounded operations. |
57
- | npm packaging | PASS: 38-file package-content inspection and real local tarball consumption. No npm publication. |
58
- | Hosted macOS/Linux CI | See the public workflow runs linked from the GitHub release; local results above do not establish hosted CI. |
59
- | Deployment/publication | Public status and downloadable artifacts are recorded in the GitHub release; package checks below concern the reviewed tarball. |
60
-
61
- At 0.1.0, the 0.2.0 packages were synthetic test fixtures, not public releases. Browser evidence, disposable homes, raw configuration fixtures and logs stay outside Git/npm. Expanded commands preserve the selected cap and avoid lists; :native round-trips unpinned effort. A 2835-case preset/role/tool matrix produces identical native role files and routing instructions. Real-shell tests preserve colon/@/bracket IDs and prevent pathname expansion. The same pinned command consumes the published npm release. The verified local tarball supports testing before publication.