Commit Graph
467 Commits
Author SHA1 Message Date
Julian lechnerandClaude Opus 5.5 3f554f4351 docs(plugins): describe semantic-search and the Codex sandbox
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:58 +02:00
Julian lechnerandClaude Opus 5.5 2cf7a25baa docs(skills): list the semantic-search skill
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:58 +02:00
Julian lechnerandClaude Opus 5.5 fa593d3b27 feat(benchmarks): accept task name patterns
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:57 +02:00
Julian lechnerandClaude Opus 5.5 e1493d9758 feat(benchmarks): compare sessions with and without semantic search
Add the setup-no-search arm for Claude, generated filler modules, an optional
warm index outside the timing, and a searches count per run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:57 +02:00
Julian lechnerandClaude Opus 5.5 00a44f50b0 test(benchmarks): add concept-search tasks
Three tasks whose target code shares no vocabulary with the prompt, run in a
repository with generated distractor modules.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:56 +02:00
Julian lechnerandClaude Opus 5.5 a8f6f01f2f docs(rules): point concept questions to semantic-search
Replace the restrictive retrieval paragraph with a short rule: rg for known
names, the semantic-search skill first for concept questions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:56 +02:00
Julian lechnerandClaude Opus 5.5 587c27c1cd feat(install): install semantic-search only with retrieval
Skip the semantic-search skill while semantic retrieval is disabled and remove
a setup-owned copy when it is turned off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:55 +02:00
Julian lechnerandClaude Opus 5.5 14e6588d4e feat(skills): add semantic-search skill
Expose the local Qwen search as a skill with an explicit trigger for concept
questions, the command for both shells, result handling, and its limits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:55 +02:00
Julian lechnerandClaude Opus 5.5 1ad5800833 feat(codex): allow writes to the retrieval data directory
Add the semantic retrieval data directory to
sandbox_workspace_write.writable_roots so Codex can build and refresh the
index without an approval.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:54 +02:00
Julian lechnerandClaude Opus 5.5 14b9185e86 feat(retrieval): create the data directory on install
Sandboxed clients may write only to data/ and cannot create it themselves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:54 +02:00
Julian lechnerandClaude Opus 5.5 9d922cd678 fix(retrieval): run in-process when pipes are forbidden
The Codex sandbox on Windows denies the pipes that the daemon and worker
process use, so searches waited 120 seconds and then failed. Detect that and
run the search in-process.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:27:54 +02:00
Julian lechnerandClaude Opus 5.5 739d2f7801 perf(retrieval): use bfloat16 on supporting GPUs
Load both models in bfloat16 when a CUDA GPU supports it and keep float32 on
CPUs. Document the daemon versioning and the indexed file types.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:13:07 +02:00
Julian lechnerandClaude Opus 5.5 f134c50d39 fix(retrieval): match the Qwen query prompt format
Drop the trailing space after "Query:" as in the model card and include the
prompt in the query cache key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:13:06 +02:00
Julian lechnerandClaude Opus 5.5 d60dd10c45 fix(retrieval): end brace-language symbols at top-level braces
Code after a top-level closing brace belonged to the preceding function, for
example shell loops labeled as quote_toml. Attribute it to the module.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:13:05 +02:00
Julian lechnerandClaude Opus 5.5 e138c0277e feat(retrieval): index markup, style, SQL, and project files
Add HTML, CSS, SCSS, XAML, SQL, XML, project, Razor, Kotlin, Gradle, and
module JavaScript files with SQL and Kotlin symbols, and rebuild the index.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:13:04 +02:00
Julian lechnerandClaude Opus 5.5 2354ce2c2c fix(retrieval): version the daemon by code hash
Derive the daemon address and start lock from a hash of server.py, so an
updated server never reuses a daemon still running older code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:13:03 +02:00
Julian lechnerandClaude Opus 5.5 4e4a10604d fix(retrieval): keep multi-word arguments on Windows
os.execv does not quote arguments on Windows, so the hand-off to the virtual
environment split every multi-word --query and search always failed. Run the
runtime with subprocess on Windows instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:13:02 +02:00
Julian lechnerandClaude Opus 5.5 83e921301b fix(test): start exited process portably in lock test
CI / CI configuration security checks (push) Successful in 4s
CI / Capabilities and shell quality (push) Successful in 15s
CI / Python tests and compilation (push) Successful in 19s
CI / Build and inspect generated packages (push) Successful in 16s
CI / PowerShell tests on Ubuntu (push) Successful in 1m6s
CI / Installed client configuration smoke tests (push) Successful in 44s
CI / Bash integration and installation guards (push) Successful in 1m4s
CI / Qwen retrieval integration (push) Successful in 14m22s
Start-Process -WindowStyle is unavailable in PowerShell on Linux, which broke
the CI PowerShell job. Use ProcessStartInfo with CreateNoWindow instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:49:04 +02:00
Julian lechnerandClaude Opus 5.5 b51e6a4211 docs(scripts): document benchmark and context report
CI / CI configuration security checks (push) Successful in 6s
CI / Capabilities and shell quality (push) Successful in 14s
CI / Python tests and compilation (push) Successful in 19s
CI / Build and inspect generated packages (push) Successful in 15s
CI / PowerShell tests on Ubuntu (push) Failing after 43s
CI / Installed client configuration smoke tests (push) Successful in 59s
CI / Bash integration and installation guards (push) Successful in 1m4s
CI / Qwen retrieval integration (push) Canceled after 2m1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:45:41 +02:00
Julian lechnerandClaude Opus 5.5 89bee27dd2 feat(benchmarks): add setup versus baseline A/B runner
Run tasks with and without the installed setup and compare pass rate, rework,
duration, tokens, cost, tool calls, and workflow checks; exclude runs that end
with a client or API error.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:45:41 +02:00
Julian lechnerandClaude Opus 5.5 3480072ed7 test(benchmarks): add A/B task fixtures with hidden checks
Ten small Python tasks, each failing on the fixture and passing with a
reference solution, including workflow expectations for a small change, a
bugfix, and a delegable change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:45:40 +02:00
Julian lechnerandClaude Opus 5.5 b8fd66ce3b feat(benchmarks): report context the clients actually load
Read Claude /context, /skill-doctor, and its init event, and Codex debug
prompt-input, to list categories, active plugins, and installed skills that
are missing or listed without description context.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:45:39 +02:00
Julian lechnerandClaude Opus 5.5 e88c1fff89 docs(readme): describe atomic writes and destination locks
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:45:39 +02:00
Julian lechnerandClaude Opus 5.5 96313f4056 feat(install): lock destinations during sync
Create <destination>/.ai-config.lock exclusively while syncing so parallel
installs or updates fail instead of interleaving writes. A lock left by an
exited process of the same shell on the same host is replaced.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:45:39 +02:00
Julian lechnerandClaude Opus 5.5 d4143ae2ac fix(install): replace all managed files atomically
Write config.toml, settings.json, the manifest, and every other managed file to
a temporary sibling and rename it over the target, so an interrupted run
cannot leave a partly written file. Previously only SKILL.md was replaced
this way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 12:45:38 +02:00
Julian lechnerandClaude Opus 5.5 3285055d80 fix(validate): check flat Claude rule skills
CI / CI configuration security checks (push) Successful in 5s
CI / Capabilities and shell quality (push) Successful in 14s
CI / Python tests and compilation (push) Successful in 18s
CI / Build and inspect generated packages (push) Successful in 16s
CI / PowerShell tests on Ubuntu (push) Successful in 1m2s
CI / Installed client configuration smoke tests (push) Successful in 34s
CI / Bash integration and installation guards (push) Successful in 1m5s
CI / Qwen retrieval integration (push) Successful in 14m22s
Look for rule skills under skills/rules-*/ and fail when none exist, so a
layout change cannot silently skip their frontmatter validation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:13:01 +02:00
Julian lechnerandClaude Opus 5.5 6d53597dbf fix(budget): read flat Claude rule skills
The flat Claude layout moved rule skills to skills/rules-*/, which made the
prompt budget fail to find rules-security.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:13:00 +02:00
Julian lechnerandClaude Opus 5.5 f83b0add58 docs(skills): describe flat Claude skill layout
CI / CI configuration security checks (push) Successful in 5s
CI / Capabilities and shell quality (push) Successful in 17s
CI / Python tests and compilation (push) Successful in 24s
CI / Build and inspect generated packages (push) Successful in 17s
CI / PowerShell tests on Ubuntu (push) Successful in 54s
CI / Bash integration and installation guards (push) Failing after 59s
CI / Installed client configuration smoke tests (push) Successful in 1m2s
CI / Qwen retrieval integration (push) Canceled after 5m28s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:02:07 +02:00
Julian lechnerandClaude Opus 5.5 3203e4ed67 fix(build): generate flat Claude skill directories
Claude discovers only skills/<name>/SKILL.md, so 84 nested skills, including
all rule skills, were invisible. Flatten the categorized catalog for Claude,
keep references, and fail the build on duplicate names or a name that differs
from its directory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:02:07 +02:00
Julian lechnerandClaude Opus 5.5 5c1bee043d docs(scripts): document required client mode
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:02:06 +02:00
Julian lechnerandClaude Opus 5.5 e49dd3f4bc ci: run client behavior smoke tests
Run scripts/tests/test-client-smoke.py in the client-smoke job with required
clients, Python, and Claude sandbox dependencies.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:02:06 +02:00
Julian lechnerandClaude Opus 5.5 82391bdfbf test(clients): add smoke test timeouts and required-client mode
Read client output on a thread with a deadline so a silent or exited client
fails instead of hanging, and fail on a missing CLI when
AI_CONFIG_REQUIRE_CLIENTS=1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:02:05 +02:00
Julian lechnerandClaude Opus 5.5 c14101e60d refactor(skills): move site-architecture catalogs to references
Keep the decision steps in SKILL.md and move catalogs, examples, and
checklists verbatim to references/ to reduce the context cost of loading the
skill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:01:55 +02:00
Julian lechnerandClaude Opus 5.5 c8b00584d9 refactor(skills): move copy-editing catalogs to references
Keep the decision steps in SKILL.md and move catalogs, examples, and
checklists verbatim to references/ to reduce the context cost of loading the
skill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:01:55 +02:00
Julian lechnerandClaude Opus 5.5 d841ce6ead refactor(skills): move image catalogs to references
Keep the decision steps in SKILL.md and move catalogs, examples, and
checklists verbatim to references/ to reduce the context cost of loading the
skill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:01:55 +02:00
Julian lechnerandClaude Opus 5.5 310876a466 refactor(skills): move content-strategy catalogs to references
Keep the decision steps in SKILL.md and move catalogs, examples, and
checklists verbatim to references/ to reduce the context cost of loading the
skill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:01:54 +02:00
Julian lechnerandClaude Opus 5.5 4c93437e59 refactor(skills): move marketing-psychology catalogs to references
Keep the decision steps in SKILL.md and move catalogs, examples, and
checklists verbatim to references/ to reduce the context cost of loading the
skill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:01:54 +02:00
Julian lechnerandClaude Opus 5.5 569f55dd0d refactor(rules): merge Angular subscription lifetime rules
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:01:46 +02:00
Julian lechnerandClaude Opus 5.5 e8cdcec629 refactor(rules): deduplicate Angular signal state rules
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:01:46 +02:00
Julian lechnerandClaude Opus 5.5 85221f6c97 docs(config): document Claude subagent limits
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:01:45 +02:00
Julian lechnerandClaude Opus 5.5 a30440f55d feat(claude): limit concurrent subagents and spawn depth
Set CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS=5 and
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 so Claude matches the Codex agent
limits and subagents cannot start further subagents.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:01:45 +02:00
Julian lechnerandClaude Opus 5.5 37d3475b92 docs(scripts): list client smoke test
CI / CI configuration security checks (push) Successful in 5s
CI / Capabilities and shell quality (push) Successful in 14s
CI / Python tests and compilation (push) Successful in 18s
CI / Build and inspect generated packages (push) Successful in 11s
CI / PowerShell tests on Ubuntu (push) Successful in 50s
CI / Installed client configuration smoke tests (push) Successful in 48s
CI / Bash integration and installation guards (push) Successful in 58s
CI / Qwen retrieval integration (push) Successful in 14m55s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:23:24 +02:00
Julian lechnerandClaude Opus 5.5 cd2f4fa93e test(clients): add behavioral client smoke tests
Install a generated package into a temporary home with foreign settings, then
ask the real Claude and Codex CLIs which skills, agents, and hooks they
discover. No model request completes. The Claude skill check currently fails
because Claude does not discover nested package skills.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:23:23 +02:00
Julian lechnerandClaude Opus 5.5 e2394ca1d1 fix(install): keep foreign Claude hooks in mixed groups
Remove only setup-owned hook entries from a hook group and keep foreign
entries with their group options, such as matcher.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:23:23 +02:00
Julian lechnerandClaude Opus 5.5 857720bcfd fix(install): exchange install option content through UTF-8 files
Windows PowerShell pipes re-encode text by console code page: under code page
65001 a BOM broke the config.toml merge, and otherwise non-ASCII characters
became question marks. Pass managed and merged content through files, and
decode piped input as utf-8-sig.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:23:14 +02:00
Julian lechnerandClaude Opus 5.5 bed90fee2d docs(rules): align technology comment rules
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:50 +02:00
Julian lechnerandClaude Opus 5.5 996233c663 docs(rules): unify documentation update rule
Update directly affected documentation and comments; add other documentation
only for a concrete need. The implementer and definition of done now defer to
the general rule instead of requiring explicit approval.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:50 +02:00
Julian lechnerandClaude Opus 5.5 f63770efbf docs(config): describe sandbox network and Context7 permissions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:42 +02:00
Julian lechnerandClaude Opus 5.5 3067d82e1a feat(claude): allow Context7 domain in enabled sandbox
Where the Claude sandbox is enabled, permit network access to
mcp.context7.com only, and validate that exact shape.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:42 +02:00
Julian lechnerandClaude Opus 5.5 d5c29cb1b6 feat(claude): allow Context7 calls through MCPorter
Add a shell-specific permission for `mcporter call context7.*` so Claude can
query Context7 through MCPorter without a permission prompt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:35 +02:00