diff --git a/archdev/SKILL.md b/archdev/SKILL.md index 9576f57..7d50638 100644 --- a/archdev/SKILL.md +++ b/archdev/SKILL.md @@ -77,9 +77,12 @@ not consent; preserve uninstall opt-outs and request permission when needed. | Repository | `"$archdev" repo hook setup --local` | | User-wide | `"$archdev" repo hook setup` | -Repository setup prepares Claude Code, Codex, Grok, Pi, and ArchDev, even -before those tools are installed. User-wide setup detects installed harnesses. -Use `--harness claude codex` only when the user selects particular tools. +Both scopes configure ArchDev and the harnesses they detect: a harness whose +user config directory exists on this machine or, for repository setup, whose +directory is already in the repository. Use `--harness claude codex` only when +the user selects particular tools. To prepare every supported harness in the +repository for teammates who use other tools, add `--all-harnesses` (CLI +0.50.1+). These are first-install commands, not repair commands. Repair existing hooks with `--refresh`, retaining `--local` for repository placement; this preserves personal uninstall opt-outs. Reinstall an opted-out tool only with separate diff --git a/archdev/references/map.md b/archdev/references/map.md index 80d30a8..fd2bed9 100644 --- a/archdev/references/map.md +++ b/archdev/references/map.md @@ -99,12 +99,16 @@ members can read it. Reporting is always on; do not ask about it. "$archdev" repo hook setup --local ``` -This prepares Claude Code, Codex, Grok, Pi, and ArchDev, even if those tools are -not installed yet. It preserves other tools' settings and user-wide hooks. -Claude uses shareable `.claude/settings.json`; the other paths are -`.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, -and `.archdev/hooks.json`. Missing-binary callbacks provide installation -guidance without downloads. Node.js is required for shared JSON callbacks. +This configures ArchDev and the harnesses detected here: a harness whose user +config directory exists on this machine, or whose directory is already in the +repository. It reports the others as absent and preserves other tools' settings +and user-wide hooks. To prepare every supported harness for teammates who use +other tools, add `--all-harnesses` (CLI 0.50.1+); `--harness ` selects +particular ones. Claude uses shareable `.claude/settings.json`; the other paths +are `.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, +`.agents/hooks.json` (Gemini), and `.archdev/hooks.json`. Missing-binary +callbacks provide installation guidance without downloads. Node.js is required +for shared JSON callbacks. Codex and Grok require project trust; never approve it automatically. Reload Pi after installing its extension. Share files only through approved code review, never automatic commits. diff --git a/plugins/antigravity/skills/archdev/SKILL.md b/plugins/antigravity/skills/archdev/SKILL.md index 9576f57..7d50638 100644 --- a/plugins/antigravity/skills/archdev/SKILL.md +++ b/plugins/antigravity/skills/archdev/SKILL.md @@ -77,9 +77,12 @@ not consent; preserve uninstall opt-outs and request permission when needed. | Repository | `"$archdev" repo hook setup --local` | | User-wide | `"$archdev" repo hook setup` | -Repository setup prepares Claude Code, Codex, Grok, Pi, and ArchDev, even -before those tools are installed. User-wide setup detects installed harnesses. -Use `--harness claude codex` only when the user selects particular tools. +Both scopes configure ArchDev and the harnesses they detect: a harness whose +user config directory exists on this machine or, for repository setup, whose +directory is already in the repository. Use `--harness claude codex` only when +the user selects particular tools. To prepare every supported harness in the +repository for teammates who use other tools, add `--all-harnesses` (CLI +0.50.1+). These are first-install commands, not repair commands. Repair existing hooks with `--refresh`, retaining `--local` for repository placement; this preserves personal uninstall opt-outs. Reinstall an opted-out tool only with separate diff --git a/plugins/antigravity/skills/archdev/references/map.md b/plugins/antigravity/skills/archdev/references/map.md index 80d30a8..fd2bed9 100644 --- a/plugins/antigravity/skills/archdev/references/map.md +++ b/plugins/antigravity/skills/archdev/references/map.md @@ -99,12 +99,16 @@ members can read it. Reporting is always on; do not ask about it. "$archdev" repo hook setup --local ``` -This prepares Claude Code, Codex, Grok, Pi, and ArchDev, even if those tools are -not installed yet. It preserves other tools' settings and user-wide hooks. -Claude uses shareable `.claude/settings.json`; the other paths are -`.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, -and `.archdev/hooks.json`. Missing-binary callbacks provide installation -guidance without downloads. Node.js is required for shared JSON callbacks. +This configures ArchDev and the harnesses detected here: a harness whose user +config directory exists on this machine, or whose directory is already in the +repository. It reports the others as absent and preserves other tools' settings +and user-wide hooks. To prepare every supported harness for teammates who use +other tools, add `--all-harnesses` (CLI 0.50.1+); `--harness ` selects +particular ones. Claude uses shareable `.claude/settings.json`; the other paths +are `.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, +`.agents/hooks.json` (Gemini), and `.archdev/hooks.json`. Missing-binary +callbacks provide installation guidance without downloads. Node.js is required +for shared JSON callbacks. Codex and Grok require project trust; never approve it automatically. Reload Pi after installing its extension. Share files only through approved code review, never automatic commits. diff --git a/plugins/claude/skills/archdev/SKILL.md b/plugins/claude/skills/archdev/SKILL.md index 9576f57..7d50638 100644 --- a/plugins/claude/skills/archdev/SKILL.md +++ b/plugins/claude/skills/archdev/SKILL.md @@ -77,9 +77,12 @@ not consent; preserve uninstall opt-outs and request permission when needed. | Repository | `"$archdev" repo hook setup --local` | | User-wide | `"$archdev" repo hook setup` | -Repository setup prepares Claude Code, Codex, Grok, Pi, and ArchDev, even -before those tools are installed. User-wide setup detects installed harnesses. -Use `--harness claude codex` only when the user selects particular tools. +Both scopes configure ArchDev and the harnesses they detect: a harness whose +user config directory exists on this machine or, for repository setup, whose +directory is already in the repository. Use `--harness claude codex` only when +the user selects particular tools. To prepare every supported harness in the +repository for teammates who use other tools, add `--all-harnesses` (CLI +0.50.1+). These are first-install commands, not repair commands. Repair existing hooks with `--refresh`, retaining `--local` for repository placement; this preserves personal uninstall opt-outs. Reinstall an opted-out tool only with separate diff --git a/plugins/claude/skills/archdev/references/map.md b/plugins/claude/skills/archdev/references/map.md index 80d30a8..fd2bed9 100644 --- a/plugins/claude/skills/archdev/references/map.md +++ b/plugins/claude/skills/archdev/references/map.md @@ -99,12 +99,16 @@ members can read it. Reporting is always on; do not ask about it. "$archdev" repo hook setup --local ``` -This prepares Claude Code, Codex, Grok, Pi, and ArchDev, even if those tools are -not installed yet. It preserves other tools' settings and user-wide hooks. -Claude uses shareable `.claude/settings.json`; the other paths are -`.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, -and `.archdev/hooks.json`. Missing-binary callbacks provide installation -guidance without downloads. Node.js is required for shared JSON callbacks. +This configures ArchDev and the harnesses detected here: a harness whose user +config directory exists on this machine, or whose directory is already in the +repository. It reports the others as absent and preserves other tools' settings +and user-wide hooks. To prepare every supported harness for teammates who use +other tools, add `--all-harnesses` (CLI 0.50.1+); `--harness ` selects +particular ones. Claude uses shareable `.claude/settings.json`; the other paths +are `.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, +`.agents/hooks.json` (Gemini), and `.archdev/hooks.json`. Missing-binary +callbacks provide installation guidance without downloads. Node.js is required +for shared JSON callbacks. Codex and Grok require project trust; never approve it automatically. Reload Pi after installing its extension. Share files only through approved code review, never automatic commits. diff --git a/plugins/codex/skills/archdev/SKILL.md b/plugins/codex/skills/archdev/SKILL.md index 9576f57..7d50638 100644 --- a/plugins/codex/skills/archdev/SKILL.md +++ b/plugins/codex/skills/archdev/SKILL.md @@ -77,9 +77,12 @@ not consent; preserve uninstall opt-outs and request permission when needed. | Repository | `"$archdev" repo hook setup --local` | | User-wide | `"$archdev" repo hook setup` | -Repository setup prepares Claude Code, Codex, Grok, Pi, and ArchDev, even -before those tools are installed. User-wide setup detects installed harnesses. -Use `--harness claude codex` only when the user selects particular tools. +Both scopes configure ArchDev and the harnesses they detect: a harness whose +user config directory exists on this machine or, for repository setup, whose +directory is already in the repository. Use `--harness claude codex` only when +the user selects particular tools. To prepare every supported harness in the +repository for teammates who use other tools, add `--all-harnesses` (CLI +0.50.1+). These are first-install commands, not repair commands. Repair existing hooks with `--refresh`, retaining `--local` for repository placement; this preserves personal uninstall opt-outs. Reinstall an opted-out tool only with separate diff --git a/plugins/codex/skills/archdev/references/map.md b/plugins/codex/skills/archdev/references/map.md index 80d30a8..fd2bed9 100644 --- a/plugins/codex/skills/archdev/references/map.md +++ b/plugins/codex/skills/archdev/references/map.md @@ -99,12 +99,16 @@ members can read it. Reporting is always on; do not ask about it. "$archdev" repo hook setup --local ``` -This prepares Claude Code, Codex, Grok, Pi, and ArchDev, even if those tools are -not installed yet. It preserves other tools' settings and user-wide hooks. -Claude uses shareable `.claude/settings.json`; the other paths are -`.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, -and `.archdev/hooks.json`. Missing-binary callbacks provide installation -guidance without downloads. Node.js is required for shared JSON callbacks. +This configures ArchDev and the harnesses detected here: a harness whose user +config directory exists on this machine, or whose directory is already in the +repository. It reports the others as absent and preserves other tools' settings +and user-wide hooks. To prepare every supported harness for teammates who use +other tools, add `--all-harnesses` (CLI 0.50.1+); `--harness ` selects +particular ones. Claude uses shareable `.claude/settings.json`; the other paths +are `.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, +`.agents/hooks.json` (Gemini), and `.archdev/hooks.json`. Missing-binary +callbacks provide installation guidance without downloads. Node.js is required +for shared JSON callbacks. Codex and Grok require project trust; never approve it automatically. Reload Pi after installing its extension. Share files only through approved code review, never automatic commits. diff --git a/plugins/copilot/skills/archdev/SKILL.md b/plugins/copilot/skills/archdev/SKILL.md index 9576f57..7d50638 100644 --- a/plugins/copilot/skills/archdev/SKILL.md +++ b/plugins/copilot/skills/archdev/SKILL.md @@ -77,9 +77,12 @@ not consent; preserve uninstall opt-outs and request permission when needed. | Repository | `"$archdev" repo hook setup --local` | | User-wide | `"$archdev" repo hook setup` | -Repository setup prepares Claude Code, Codex, Grok, Pi, and ArchDev, even -before those tools are installed. User-wide setup detects installed harnesses. -Use `--harness claude codex` only when the user selects particular tools. +Both scopes configure ArchDev and the harnesses they detect: a harness whose +user config directory exists on this machine or, for repository setup, whose +directory is already in the repository. Use `--harness claude codex` only when +the user selects particular tools. To prepare every supported harness in the +repository for teammates who use other tools, add `--all-harnesses` (CLI +0.50.1+). These are first-install commands, not repair commands. Repair existing hooks with `--refresh`, retaining `--local` for repository placement; this preserves personal uninstall opt-outs. Reinstall an opted-out tool only with separate diff --git a/plugins/copilot/skills/archdev/references/map.md b/plugins/copilot/skills/archdev/references/map.md index 80d30a8..fd2bed9 100644 --- a/plugins/copilot/skills/archdev/references/map.md +++ b/plugins/copilot/skills/archdev/references/map.md @@ -99,12 +99,16 @@ members can read it. Reporting is always on; do not ask about it. "$archdev" repo hook setup --local ``` -This prepares Claude Code, Codex, Grok, Pi, and ArchDev, even if those tools are -not installed yet. It preserves other tools' settings and user-wide hooks. -Claude uses shareable `.claude/settings.json`; the other paths are -`.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, -and `.archdev/hooks.json`. Missing-binary callbacks provide installation -guidance without downloads. Node.js is required for shared JSON callbacks. +This configures ArchDev and the harnesses detected here: a harness whose user +config directory exists on this machine, or whose directory is already in the +repository. It reports the others as absent and preserves other tools' settings +and user-wide hooks. To prepare every supported harness for teammates who use +other tools, add `--all-harnesses` (CLI 0.50.1+); `--harness ` selects +particular ones. Claude uses shareable `.claude/settings.json`; the other paths +are `.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, +`.agents/hooks.json` (Gemini), and `.archdev/hooks.json`. Missing-binary +callbacks provide installation guidance without downloads. Node.js is required +for shared JSON callbacks. Codex and Grok require project trust; never approve it automatically. Reload Pi after installing its extension. Share files only through approved code review, never automatic commits. diff --git a/plugins/cursor/skills/archdev/SKILL.md b/plugins/cursor/skills/archdev/SKILL.md index 9576f57..7d50638 100644 --- a/plugins/cursor/skills/archdev/SKILL.md +++ b/plugins/cursor/skills/archdev/SKILL.md @@ -77,9 +77,12 @@ not consent; preserve uninstall opt-outs and request permission when needed. | Repository | `"$archdev" repo hook setup --local` | | User-wide | `"$archdev" repo hook setup` | -Repository setup prepares Claude Code, Codex, Grok, Pi, and ArchDev, even -before those tools are installed. User-wide setup detects installed harnesses. -Use `--harness claude codex` only when the user selects particular tools. +Both scopes configure ArchDev and the harnesses they detect: a harness whose +user config directory exists on this machine or, for repository setup, whose +directory is already in the repository. Use `--harness claude codex` only when +the user selects particular tools. To prepare every supported harness in the +repository for teammates who use other tools, add `--all-harnesses` (CLI +0.50.1+). These are first-install commands, not repair commands. Repair existing hooks with `--refresh`, retaining `--local` for repository placement; this preserves personal uninstall opt-outs. Reinstall an opted-out tool only with separate diff --git a/plugins/cursor/skills/archdev/references/map.md b/plugins/cursor/skills/archdev/references/map.md index 80d30a8..fd2bed9 100644 --- a/plugins/cursor/skills/archdev/references/map.md +++ b/plugins/cursor/skills/archdev/references/map.md @@ -99,12 +99,16 @@ members can read it. Reporting is always on; do not ask about it. "$archdev" repo hook setup --local ``` -This prepares Claude Code, Codex, Grok, Pi, and ArchDev, even if those tools are -not installed yet. It preserves other tools' settings and user-wide hooks. -Claude uses shareable `.claude/settings.json`; the other paths are -`.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, -and `.archdev/hooks.json`. Missing-binary callbacks provide installation -guidance without downloads. Node.js is required for shared JSON callbacks. +This configures ArchDev and the harnesses detected here: a harness whose user +config directory exists on this machine, or whose directory is already in the +repository. It reports the others as absent and preserves other tools' settings +and user-wide hooks. To prepare every supported harness for teammates who use +other tools, add `--all-harnesses` (CLI 0.50.1+); `--harness ` selects +particular ones. Claude uses shareable `.claude/settings.json`; the other paths +are `.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, +`.agents/hooks.json` (Gemini), and `.archdev/hooks.json`. Missing-binary +callbacks provide installation guidance without downloads. Node.js is required +for shared JSON callbacks. Codex and Grok require project trust; never approve it automatically. Reload Pi after installing its extension. Share files only through approved code review, never automatic commits. diff --git a/plugins/grok/skills/archdev/SKILL.md b/plugins/grok/skills/archdev/SKILL.md index 9576f57..7d50638 100644 --- a/plugins/grok/skills/archdev/SKILL.md +++ b/plugins/grok/skills/archdev/SKILL.md @@ -77,9 +77,12 @@ not consent; preserve uninstall opt-outs and request permission when needed. | Repository | `"$archdev" repo hook setup --local` | | User-wide | `"$archdev" repo hook setup` | -Repository setup prepares Claude Code, Codex, Grok, Pi, and ArchDev, even -before those tools are installed. User-wide setup detects installed harnesses. -Use `--harness claude codex` only when the user selects particular tools. +Both scopes configure ArchDev and the harnesses they detect: a harness whose +user config directory exists on this machine or, for repository setup, whose +directory is already in the repository. Use `--harness claude codex` only when +the user selects particular tools. To prepare every supported harness in the +repository for teammates who use other tools, add `--all-harnesses` (CLI +0.50.1+). These are first-install commands, not repair commands. Repair existing hooks with `--refresh`, retaining `--local` for repository placement; this preserves personal uninstall opt-outs. Reinstall an opted-out tool only with separate diff --git a/plugins/grok/skills/archdev/references/map.md b/plugins/grok/skills/archdev/references/map.md index 80d30a8..fd2bed9 100644 --- a/plugins/grok/skills/archdev/references/map.md +++ b/plugins/grok/skills/archdev/references/map.md @@ -99,12 +99,16 @@ members can read it. Reporting is always on; do not ask about it. "$archdev" repo hook setup --local ``` -This prepares Claude Code, Codex, Grok, Pi, and ArchDev, even if those tools are -not installed yet. It preserves other tools' settings and user-wide hooks. -Claude uses shareable `.claude/settings.json`; the other paths are -`.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, -and `.archdev/hooks.json`. Missing-binary callbacks provide installation -guidance without downloads. Node.js is required for shared JSON callbacks. +This configures ArchDev and the harnesses detected here: a harness whose user +config directory exists on this machine, or whose directory is already in the +repository. It reports the others as absent and preserves other tools' settings +and user-wide hooks. To prepare every supported harness for teammates who use +other tools, add `--all-harnesses` (CLI 0.50.1+); `--harness ` selects +particular ones. Claude uses shareable `.claude/settings.json`; the other paths +are `.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, +`.agents/hooks.json` (Gemini), and `.archdev/hooks.json`. Missing-binary +callbacks provide installation guidance without downloads. Node.js is required +for shared JSON callbacks. Codex and Grok require project trust; never approve it automatically. Reload Pi after installing its extension. Share files only through approved code review, never automatic commits. diff --git a/plugins/opencode/skills/archdev/SKILL.md b/plugins/opencode/skills/archdev/SKILL.md index 9576f57..7d50638 100644 --- a/plugins/opencode/skills/archdev/SKILL.md +++ b/plugins/opencode/skills/archdev/SKILL.md @@ -77,9 +77,12 @@ not consent; preserve uninstall opt-outs and request permission when needed. | Repository | `"$archdev" repo hook setup --local` | | User-wide | `"$archdev" repo hook setup` | -Repository setup prepares Claude Code, Codex, Grok, Pi, and ArchDev, even -before those tools are installed. User-wide setup detects installed harnesses. -Use `--harness claude codex` only when the user selects particular tools. +Both scopes configure ArchDev and the harnesses they detect: a harness whose +user config directory exists on this machine or, for repository setup, whose +directory is already in the repository. Use `--harness claude codex` only when +the user selects particular tools. To prepare every supported harness in the +repository for teammates who use other tools, add `--all-harnesses` (CLI +0.50.1+). These are first-install commands, not repair commands. Repair existing hooks with `--refresh`, retaining `--local` for repository placement; this preserves personal uninstall opt-outs. Reinstall an opted-out tool only with separate diff --git a/plugins/opencode/skills/archdev/references/map.md b/plugins/opencode/skills/archdev/references/map.md index 80d30a8..fd2bed9 100644 --- a/plugins/opencode/skills/archdev/references/map.md +++ b/plugins/opencode/skills/archdev/references/map.md @@ -99,12 +99,16 @@ members can read it. Reporting is always on; do not ask about it. "$archdev" repo hook setup --local ``` -This prepares Claude Code, Codex, Grok, Pi, and ArchDev, even if those tools are -not installed yet. It preserves other tools' settings and user-wide hooks. -Claude uses shareable `.claude/settings.json`; the other paths are -`.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, -and `.archdev/hooks.json`. Missing-binary callbacks provide installation -guidance without downloads. Node.js is required for shared JSON callbacks. +This configures ArchDev and the harnesses detected here: a harness whose user +config directory exists on this machine, or whose directory is already in the +repository. It reports the others as absent and preserves other tools' settings +and user-wide hooks. To prepare every supported harness for teammates who use +other tools, add `--all-harnesses` (CLI 0.50.1+); `--harness ` selects +particular ones. Claude uses shareable `.claude/settings.json`; the other paths +are `.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, +`.agents/hooks.json` (Gemini), and `.archdev/hooks.json`. Missing-binary +callbacks provide installation guidance without downloads. Node.js is required +for shared JSON callbacks. Codex and Grok require project trust; never approve it automatically. Reload Pi after installing its extension. Share files only through approved code review, never automatic commits. diff --git a/plugins/pi/skills/archdev/SKILL.md b/plugins/pi/skills/archdev/SKILL.md index 9576f57..7d50638 100644 --- a/plugins/pi/skills/archdev/SKILL.md +++ b/plugins/pi/skills/archdev/SKILL.md @@ -77,9 +77,12 @@ not consent; preserve uninstall opt-outs and request permission when needed. | Repository | `"$archdev" repo hook setup --local` | | User-wide | `"$archdev" repo hook setup` | -Repository setup prepares Claude Code, Codex, Grok, Pi, and ArchDev, even -before those tools are installed. User-wide setup detects installed harnesses. -Use `--harness claude codex` only when the user selects particular tools. +Both scopes configure ArchDev and the harnesses they detect: a harness whose +user config directory exists on this machine or, for repository setup, whose +directory is already in the repository. Use `--harness claude codex` only when +the user selects particular tools. To prepare every supported harness in the +repository for teammates who use other tools, add `--all-harnesses` (CLI +0.50.1+). These are first-install commands, not repair commands. Repair existing hooks with `--refresh`, retaining `--local` for repository placement; this preserves personal uninstall opt-outs. Reinstall an opted-out tool only with separate diff --git a/plugins/pi/skills/archdev/references/map.md b/plugins/pi/skills/archdev/references/map.md index 80d30a8..fd2bed9 100644 --- a/plugins/pi/skills/archdev/references/map.md +++ b/plugins/pi/skills/archdev/references/map.md @@ -99,12 +99,16 @@ members can read it. Reporting is always on; do not ask about it. "$archdev" repo hook setup --local ``` -This prepares Claude Code, Codex, Grok, Pi, and ArchDev, even if those tools are -not installed yet. It preserves other tools' settings and user-wide hooks. -Claude uses shareable `.claude/settings.json`; the other paths are -`.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, -and `.archdev/hooks.json`. Missing-binary callbacks provide installation -guidance without downloads. Node.js is required for shared JSON callbacks. +This configures ArchDev and the harnesses detected here: a harness whose user +config directory exists on this machine, or whose directory is already in the +repository. It reports the others as absent and preserves other tools' settings +and user-wide hooks. To prepare every supported harness for teammates who use +other tools, add `--all-harnesses` (CLI 0.50.1+); `--harness ` selects +particular ones. Claude uses shareable `.claude/settings.json`; the other paths +are `.codex/hooks.json`, `.grok/hooks/archdev.json`, `.pi/extensions/archdev.js`, +`.agents/hooks.json` (Gemini), and `.archdev/hooks.json`. Missing-binary +callbacks provide installation guidance without downloads. Node.js is required +for shared JSON callbacks. Codex and Grok require project trust; never approve it automatically. Reload Pi after installing its extension. Share files only through approved code review, never automatic commits. diff --git a/scripts/test-skill-bootstrap-cli.ps1 b/scripts/test-skill-bootstrap-cli.ps1 index 3b6f547..032a16c 100644 --- a/scripts/test-skill-bootstrap-cli.ps1 +++ b/scripts/test-skill-bootstrap-cli.ps1 @@ -20,7 +20,9 @@ function Assert-Proof([bool]$Condition, [string]$Message) { function Snapshot([string]$Root) { return ((Get-ChildItem -LiteralPath $Root -File -Recurse -Force | Sort-Object FullName | ForEach-Object { $relative = $_.FullName.Substring($Root.Length + 1) - if ($relative -notmatch '^(\.archdev[\\/]logs|\.cache[\\/]archdev)[\\/]') { + # Logs, caches and the hook event queue (drained by a background + # worker on its own schedule) are process state, not configuration. + if ($relative -notmatch '^(\.archdev[\\/]logs|\.cache[\\/]archdev|\.archdev[\\/]hooks[\\/][^\\/]+[\\/]queue)[\\/]') { "$relative $((Get-FileHash -LiteralPath $_.FullName -Algorithm SHA256).Hash)" } }) -join "`n") @@ -89,12 +91,35 @@ try { } # Explicit repository/reporting approval crosses the real CLI boundary. - & $binary repo hook setup --local + # Plain repository setup configures the harnesses it detects: Claude, + # whose config directory exists in this HOME, and ArchDev. + $detected = (& $binary --json repo hook setup --local | Out-String) | ConvertFrom-Json Assert-Proof ($LASTEXITCODE -eq 0) "Repository setup failed" Assert-Proof ((Snapshot $homeDir) -eq $before) "Repository setup changed personal configuration" + $status = @{} + foreach ($outcome in $detected.harnesses) { $status[$outcome.harness] = $outcome.status } + foreach ($harness in @('claude', 'archdev')) { + Assert-Proof ($status[$harness] -eq 'installed') "Detected harness $harness was not installed" + } + foreach ($harness in @('codex', 'grok', 'pi')) { + Assert-Proof ($status[$harness] -eq 'absent') "Undetected harness $harness was not reported absent" + } + foreach ($file in @('.claude/settings.json', '.archdev/hooks.json')) { + Assert-Proof (Test-Path (Join-Path $checkout $file)) "Missing shared hook $file" + } + foreach ($dir in @('.codex', '.grok', '.pi', '.agents')) { + Assert-Proof (-not (Test-Path (Join-Path $checkout $dir))) "Undetected harness wrote $dir" + } + + # Teammates may use agents this machine lacks. --all-harnesses + # prepares every supported harness, still without personal files. + & $binary repo hook setup --local --all-harnesses + Assert-Proof ($LASTEXITCODE -eq 0) "Repository setup for all harnesses failed" + Assert-Proof ((Snapshot $homeDir) -eq $before) "Repository setup changed personal configuration" foreach ($file in @('.claude/settings.json', '.codex/hooks.json', '.grok/hooks/archdev.json', '.pi/extensions/archdev.js', '.archdev/hooks.json')) { Assert-Proof (Test-Path (Join-Path $checkout $file)) "Missing shared hook $file" } + Assert-Proof (-not (Test-Path (Join-Path $checkout '.claude/settings.local.json'))) "Repository setup wrote personal Claude settings" $settings = Get-Content (Join-Path $checkout '.claude/settings.json') -Raw | ConvertFrom-Json $command = @($settings.hooks.SessionStart | ForEach-Object { $_.hooks } | Where-Object { $_.command -match 'archdev repo hook ' })[0].command $payload = @{ hook_event_name = 'SessionStart'; source = 'startup'; cwd = $checkout } | ConvertTo-Json -Compress diff --git a/scripts/test-skill-bootstrap-cli.sh b/scripts/test-skill-bootstrap-cli.sh index 815490e..e77bf56 100755 --- a/scripts/test-skill-bootstrap-cli.sh +++ b/scripts/test-skill-bootstrap-cli.sh @@ -2,7 +2,7 @@ # Canonical proof: an agent resolves ArchDev without configuring hooks, then # applies only an explicitly chosen placement. Real CLI and shell callbacks; # no coding-agent trust or browser authentication is simulated as verified. -# Usage: scripts/test-skill-bootstrap-cli.sh (ArchDev 0.47.0+ and Node on PATH) +# Usage: scripts/test-skill-bootstrap-cli.sh (ArchDev 0.50.1+ and Node on PATH) set -euo pipefail repo="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" @@ -31,6 +31,10 @@ for path in sorted(root.rglob('*')): # Process logs/cache/crash records are not hook or user configuration. if relative.parts[:2] in [('.archdev', 'logs'), ('.cache', 'archdev')]: continue + # Nor is the hook event queue, which a background worker drains on its + # own schedule after an installed callback runs. + if relative.parts[:2] == ('.archdev', 'hooks') and relative.parts[3:4] == ('queue',): + continue if path.is_file(): print(relative, hashlib.sha256(path.read_bytes()).hexdigest()) PY @@ -65,14 +69,33 @@ printf 'ok core and Tasks resolve the real CLI without changing personal confi # The agent has received explicit repository/reporting consent. Cross the real # CLI process boundary into the isolated Git fixture; only shareable project -# files may be written. -(cd "$checkout" && in_home archdev repo hook setup --local) +# files may be written. Plain repository setup configures the harnesses it +# detects: Claude, whose config directory exists in this HOME, and ArchDev. +detected="$(cd "$checkout" && in_home archdev --json repo hook setup --local)" +[[ "$(snapshot "$home")" == "$before" ]] +for file in .claude/settings.json .archdev/hooks.json; do + [[ -f "$checkout/$file" ]] +done +for dir in .codex .grok .pi .agents; do + [[ ! -e "$checkout/$dir" ]] +done +python3 - "$detected" <<'PY' +import json, sys +status = {h['harness']: h['status'] for h in json.loads(sys.argv[1])['harnesses']} +assert status['claude'] == status['archdev'] == 'installed', status +assert all(status[h] == 'absent' for h in ('codex', 'grok', 'pi')), status +PY +printf 'ok approved repository placement configures detected harnesses and reports the rest absent\n' + +# Teammates may use agents this machine lacks. --all-harnesses prepares every +# supported harness in the repository, still without touching personal files. +(cd "$checkout" && in_home archdev repo hook setup --local --all-harnesses) [[ "$(snapshot "$home")" == "$before" ]] for file in .claude/settings.json .codex/hooks.json .grok/hooks/archdev.json .pi/extensions/archdev.js .archdev/hooks.json; do [[ -f "$checkout/$file" ]] done [[ ! -e "$checkout/.claude/settings.local.json" ]] -printf 'ok approved repository placement prepares all five harnesses and leaves personal settings alone\n' +printf 'ok --all-harnesses prepares all five harnesses and leaves personal settings alone\n' # Run the actual installed Claude callback as a harness would. The binary is # present; its existing workflow contract must survive the shared launcher.