Commit Graph
100 Commits
Author SHA1 Message Date
Julian lechner 92fbcc8114 fix(manifest): preserve PowerShell model settings 2026-09-17 14:03:00 +02:00
Julian lechner 8c7ede54a6 docs: describe review status displays
CI / linux (push) Failing after 3s
2026-09-17 13:22:55 +02:00
Julian lechner 83929e856f feat(statusline): show review mode 2026-09-17 13:22:42 +02:00
Julian lechner 3ddf2756c2 docs: describe shared rule manifest 2026-09-17 13:16:35 +02:00
Julian lechner d308bc037e refactor: share rule skill manifest 2026-09-17 13:16:24 +02:00
Julian lechner 78667b182f docs(rules): require Qwen reranking
CI / linux (push) Failing after 4s
2026-09-17 13:08:06 +02:00
Julian lechner d01b819b02 chore(retrieval): describe reranking setup 2026-09-17 13:07:57 +02:00
Julian lechner 727c499d2c feat(retrieval): rerank semantic search results 2026-09-17 13:07:47 +02:00
Julian lechner 2975619da8 docs: clarify shared rule manifest 2026-09-17 13:02:43 +02:00
Julian lechner 6420e54e4e perf(codex): remove Impeccable hooks 2026-09-17 13:00:37 +02:00
Julian lechner 84fcb0f583 chore: refresh prompt budget baseline 2026-09-17 13:00:29 +02:00
Julian lechner 65eee69fb9 fix(codex): preserve local model settings 2026-09-17 13:00:20 +02:00
Julian lechner 64fb27f539 ci: streamline validation workflow 2026-09-17 13:00:06 +02:00
Julian lechner 381f99ea54 docs(readme): note preserved Codex settings
CI / linux (push) Failing after 4s
CI / compatibility-canary (push) Skipped
2026-09-17 11:47:24 +02:00
Julian lechner 8ab180c73a docs(configuration): describe status and local settings 2026-09-17 11:47:07 +02:00
Julian lechner 83401a4732 docs(plugins): document QMD integration 2026-09-17 11:46:36 +02:00
Julian lechner 4f6ac68e0c feat(statusline): show Codex permission mode 2026-09-17 11:46:06 +02:00
Julian lechner f07aaf8f63 feat(qmd): add managed extension integration 2026-09-17 11:45:41 +02:00
Julian lechner 1b64c54fda feat(instructions): guide semantic retrieval 2026-09-17 11:45:16 +02:00
Julian lechner 13594fb401 fix(update): preserve local model and effort 2026-09-17 11:45:00 +02:00
Julian lechner 7572ec40d9 fix(hooks): run Impeccable hook on Windows 2026-09-17 11:44:36 +02:00
Julian lechner 79d981e78b fix(retrieval): order Claude MCP arguments 2026-09-17 09:21:45 +02:00
Julian lechner b67eb844bc docs(retrieval): document optional local layer 2026-09-17 09:17:46 +02:00
Julian lechner aaf3a183f4 feat(install): reconcile retrieval runtime 2026-09-17 09:17:20 +02:00
Julian lechner 27f1c1ec79 feat(retrieval): add optional Qwen semantic layer 2026-09-17 09:16:53 +02:00
Julian lechner bfbe001248 feat(selection): persist retrieval preference 2026-09-17 09:16:05 +02:00
Julian lechner 151306a6cc fix(capabilities): check shell and tool requirements 2026-09-17 09:15:37 +02:00
Julian lechner 0079fe2b92 docs(ci): document and run capability checks 2026-09-17 08:43:21 +02:00
Julian lechner 5c23f21586 feat(capabilities): add strict shell checks 2026-09-17 08:43:12 +02:00
Julian lechner bdf98d5b71 feat(telemetry): add local agent efficiency metrics 2026-09-17 08:32:39 +02:00
Julian lechner 4fa8708ba7 feat(session): bind verification to git state 2026-09-17 08:32:28 +02:00
Julian lechner be87628d67 feat(plugins): record resolved extension revisions 2026-09-17 08:32:17 +02:00
Julian lechner 8ae8e7a173 feat(review): standardize finding scope and severity 2026-09-17 08:32:08 +02:00
Julian lechner ea2c80817b feat(agents): generate capabilities and rule loading 2026-09-17 08:31:58 +02:00
Julian lechner 3fad860256 ci: cover bash and powershell on linux 2026-09-17 08:31:47 +02:00
Julian lechner 2c3e63ed29 feat(prompt-budget): enforce absolute context caps 2026-09-17 08:31:38 +02:00
Julian lechner 1d77feeb71 fix(plugins): correct impeccable selector 2026-09-17 08:31:28 +02:00
Julian lechner 5ef3bc5525 docs(readme): use clone in quickstart 2026-09-17 08:31:17 +02:00
Julian lechner c6c8bf7105 feat: add keyboard plugin selection
CI / linux (push) Failing after 11s
2026-09-16 17:37:53 +02:00
Julian lechner 9b5e862d8a feat: persist compact session state 2026-09-16 17:37:48 +02:00
Julian lechner a509509192 feat: add local session telemetry 2026-09-16 17:37:43 +02:00
Julian lechner 9b82f3eecd feat: cache repository context 2026-09-16 17:37:40 +02:00
Julian lechner c7b25b63c9 ci: add prompt budget checks 2026-09-16 17:37:23 +02:00
Julian lechner c8674a5059 chore(codex): add local hook configuration 2026-09-16 16:56:18 +02:00
Julian lechner 77a829aff0 docs(plan): record token efficiency implementation 2026-09-16 16:55:32 +02:00
Julian lechner 137af86de3 docs(plan): add token efficiency design 2026-09-16 16:55:22 +02:00
Julian lechner 13c3f56aa5 ci: run compact script checks 2026-09-16 16:55:11 +02:00
Julian lechner 67c28d4b08 test(packages): verify compact output and rule deduplication 2026-09-16 16:55:02 +02:00
Julian lechner 2ce60a86ab test(plugins): cover selection and install guards 2026-09-16 16:54:53 +02:00
Julian lechner 1c359729a8 test(scripts): add summary modes to validation tests 2026-09-16 16:54:43 +02:00
Julian lechner 545c9841b2 feat(install): add compact install and update summaries 2026-09-16 16:54:33 +02:00
Julian lechner 5b50f32f4b refactor(install): share target selection helpers 2026-09-16 16:54:23 +02:00
Julian lechner 0c0062d955 fix(doctor): quote TOML parser command 2026-09-16 16:54:10 +02:00
Julian lechner edd874945e test(config): validate generated skill frontmatter 2026-09-16 16:54:01 +02:00
Julian lechner ab3007cf48 feat(build): add compact summary mode 2026-09-16 16:53:51 +02:00
Julian lechner 1355cbe3cd feat(plugins): compact command output and preserve diagnostics 2026-09-16 16:53:40 +02:00
Julian lechner 453da10b61 feat(output): summarize managed file sync 2026-09-16 16:53:28 +02:00
Julian lechner bfd3093776 refactor(rules): narrow ambiguity and output guidance 2026-09-16 16:53:15 +02:00
Julian lechner 847038d1e0 style(statusline): compact Claude status display 2026-09-16 16:53:03 +02:00
Julian lechner 9d23c4455e docs: document summary output and update workflow 2026-09-16 16:52:52 +02:00
Julian lechnerandClaude Sonnet 5 e02b6cfed2 test: cover embedded general.md dedup and split-rule reference files
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 16:04:35 +02:00
Julian lechnerandClaude Haiku 4.5 c979f47621 refactor(rules): point definition-of-done at general.md instead of restating it
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 15:50:08 +02:00
Julian lechnerandClaude Haiku 4.5 89de58ff24 refactor(rules): de-duplicate priority/decision/documentation guidance into general.md
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 15:46:20 +02:00
Julian lechnerandClaude Sonnet 5 3fa0d74ad8 feat(build): embed general.md into AGENTS.md, not just CLAUDE.md
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 15:42:36 +02:00
Julian lechnerandClaude Sonnet 5 3a01d28506 feat(build): support directory-shaped rules with references/
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 15:38:28 +02:00
Julian lechnerandClaude Haiku 4.5 01220cebd4 refactor(rules): split ui-ux.md into index + references
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 15:34:43 +02:00
Julian lechnerandClaude Haiku 4.5 a2b9a9f5c4 refactor(rules): split wpf.md into index + references
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 15:29:33 +02:00
Julian lechner 29d26b0918 refactor(rules): split angular.md into index + references
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 15:24:03 +02:00
Julian lechner 0a76bd5e54 feat(install,update): thread --summary/-Summary through sync and plugin steps
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 15:14:17 +02:00
Julian lechnerandClaude Haiku 4.5 77dab28c9a fix(doctor): implement buffered PASS output in summary mode
Implement proper buffering for PASS lines in summary mode:
- PASS lines are buffered when -Summary/--summary is active
- WARN and FAIL lines print immediately (never buffered)
- On success: buffer is discarded, print tally line only
- On failure: buffer is flushed before tally line

Revert out-of-scope try/catch around Python command (not part of Task 4).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 15:06:55 +02:00
Julian lechnerandClaude Haiku 4.5 3fab891383 feat(doctor): add --summary/-Summary output mode
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 14:49:49 +02:00
Julian lechner c94dfdcb30 feat(build): accept --summary/-Summary for interface parity
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 14:39:22 +02:00
Julian lechnerandClaude Haiku 4.5 0cc6909057 feat(scripts): add summary mode to plugin install/uninstall
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 14:32:17 +02:00
Julian lechner 18b6a7e390 feat(scripts): add summary mode to managed-file sync
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-09-16 14:24:39 +02:00
Julian lechnerandClaude Sonnet 5 5f75de4eb1 chore: ignore .superpowers/ scratch workspace
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 14:20:49 +02:00
Julian lechnerandClaude Sonnet 5 e88d27ac43 docs(configuration): document the multi_agent_v2 decision
CI / linux (push) Successful in 12s
CI / windows (push) Canceled after 0s
Recorded why it is not configured: it does not appear in the current
documented Codex schema, only in upstream issue titles describing an
internal/experimental flag. [agents].enabled already covers enabling
multi-agent tools; the schema's separate [features].multi_agent toggle
would be redundant alongside it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:07:51 +02:00
Julian lechnerandClaude Sonnet 5 03d44e1d71 docs(configuration): correct the max_depth claim
The previous wording implied a global max_depth-style setting had been
considered generically; the only such key in Codex's schema is
network_proxy.glob_scan_max_depth, which bounds glob expansion for the
network proxy feature and has nothing to do with agents. Claude Code
exposes no comparable key either.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:07:37 +02:00
Julian lechnerandClaude Sonnet 5 4e7056e821 ci: bump actions/checkout to v6
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:07:32 +02:00
Julian lechnerandClaude Sonnet 5 0ae373c202 fix(installer): tolerate BOM, CRLF, and uppercase in older manifests (Bash)
Bash's manifest reader stripped only the trailing newline, so a
CRLF-terminated manifest left a stray \r on every hash, a UTF-8 BOM on the
header line was folded into the "path" field, and an uppercase hash never
matched sha256sum's lowercase output. Reproduced against a real
manifest written by an earlier version of the PowerShell installer, where
every single managed file was misreported as locally modified.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:07:27 +02:00
Julian lechnerandClaude Sonnet 5 1c2d155fcc fix(installer): write manifest hashes lowercase and without a BOM (PowerShell)
Windows PowerShell 5.1's -Encoding UTF8 always prepends a BOM, and
Get-FileHash returns uppercase hex. Bash's manifest reader expects neither,
so a manifest written by this module and later read by the Bash
equivalent (or vice versa) mismatched on every single entry: the BOM
folded into the header's first field, and every hash comparison failed on
case alone. Hashes are now lowercased on read and write, and the manifest
file itself is written UTF-8 without a BOM.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:07:17 +02:00
Julian lechnerandClaude Sonnet 5 e143f9d087 fix(tests): add explicit exit 0 on success (PowerShell build validation)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:07:06 +02:00
Julian lechnerandClaude Sonnet 5 a4ea912b60 fix(tests): add explicit exit 0 on success (PowerShell managed install)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:07:02 +02:00
Julian lechnerandClaude Sonnet 5 c866fe44f0 fix(tests): add explicit exit 0 on success (PowerShell platform packages)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:06:57 +02:00
Julian lechnerandClaude Sonnet 5 c89aa4885c fix(installer): add explicit exit 0 on success (PowerShell)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:06:52 +02:00
Julian lechnerandClaude Sonnet 5 c9ef92e424 fix(doctor): add explicit exit 0 on success (PowerShell)
doctor.ps1 already exited 1 on failure but relied on the implicit process
exit code on success, which a stale $LASTEXITCODE from an earlier native
call (e.g. codex --version) could turn into a false failure in CI.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:06:48 +02:00
Julian lechnerandClaude Sonnet 5 6314b408b3 fix(build): add explicit exit 0 on success (PowerShell)
Without it, a stale $LASTEXITCODE left over from an earlier native
command in the same PowerShell session could cause a CI step to be
reported as failed even though the script itself completed successfully.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:06:42 +02:00
Julian lechnerandClaude Sonnet 5 1163f6d96e fix: mark shell scripts executable in git
All tracked .sh files were stored as mode 100644 (non-executable), even
though the CI workflow and normal usage invoke several of them directly
(./scripts/build.sh) rather than through `bash`. On a fresh Linux
checkout this fails with a permission error.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:06:37 +02:00
Julian lechnerandClaude Sonnet 5 6ebb13d51a docs(readme): document rule skills, managed manifest, and installer params
CI / linux (push) Failing after 3s
CI / windows (push) Canceled after 0s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:44:32 +02:00
Julian lechnerandClaude Sonnet 5 0d60aa6f5c docs(plugins): document the opt-in plugin update behavior
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:44:28 +02:00
Julian lechnerandClaude Sonnet 5 2fd59f3fd8 docs(skills): document the generated Claude skills/rules category
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:44:24 +02:00
Julian lechnerandClaude Sonnet 5 b815d16084 docs(configuration): document Claude rule skills and the Codex key rename
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:44:20 +02:00
Julian lechnerandClaude Sonnet 5 cd6647eb7b ci: add build and test workflow for Linux and Windows
Runs build, doctor, the platform-package tests, the managed-manifest
tests, the build-validation tests, and an install dry run on both
ubuntu-latest and windows-latest for every push to main and every pull
request.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:44:15 +02:00
Julian lechnerandClaude Sonnet 5 1abb3a2d32 docs(hooks): clarify which hook scripts are actually registered
Only the Stop hook (flashbang) is wired into the generated client
configuration. Validate-CommandSafety and Invoke-PostChangeVerification
are utility scripts nothing here invokes automatically; the previous
wording could be read as implying otherwise.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:44:09 +02:00
Julian lechnerandClaude Sonnet 5 077eaa55be fix(hooks): handle missing tkinter cleanly in flashbang.sh
tkinter was imported at module level, before the try/except that was
meant to catch a missing display or toolkit. On a Python install without
the (often separately packaged) tkinter module, the script crashed
instead of falling back to notify-send. The import is now wrapped in its
own try/except with the same fallback.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:44:04 +02:00
Julian lechnerandClaude Sonnet 5 b59d355e99 perf(hooks): reduce Stop hook timeout from 20s to 8s
The Stop hook only runs a ~500ms visual flash; 20 seconds was far more
than any realistic process-start latency needs, including the one-time
native shim compile on Windows.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:43:57 +02:00
Julian lechnerandClaude Sonnet 5 ae421ce93b fix(codex): rename max_threads to max_concurrent_threads_per_session
max_threads is a legacy alias; the current Codex config sample only
documents max_concurrent_threads_per_session under [agents]. Confirmed
against the official sample configuration before renaming.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:43:47 +02:00
Julian lechnerandClaude Sonnet 5 eff814b245 test: add build-time validation regression tests (Bash)
Bash equivalent of the PowerShell build-validation test, using a tar-based
repo copy per case to check the same four rejected-defect scenarios.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:43:36 +02:00
Julian lechnerandClaude Sonnet 5 3d6c19814e test: add build-time validation regression tests (PowerShell)
Runs the build against temporary full-repo copies, each with one injected
defect, and asserts the build rejects it: invalid Claude settings.json,
a duplicate agent name, a duplicate plugin name, and a leftover template
placeholder.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:43:31 +02:00
Julian lechnerandClaude Sonnet 5 f56366969d test: add managed-manifest installer scenarios (Bash)
Bash equivalent of the PowerShell managed-manifest test, covering the same
idempotency, stale-removal, modified-file-protection, foreign-file, and
side-effect-free dry-run scenarios against sync_managed_destination.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:43:26 +02:00
Julian lechnerandClaude Sonnet 5 0e9de14d46 test: add managed-manifest installer scenarios (PowerShell)
Exercises Sync-ManagedDestination directly against a throwaway
source/destination pair: idempotent second install (no writes, no
backups), removal of a stale-and-untouched file, protection of a
stale-but-locally-modified file (backed up, left in place, warned), a
foreign file that was never installed staying untouched, and a dry run
that reports the planned removal without any side effects.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 15:43:21 +02:00