v2.1.0
Rubber Duck v2.1.0
Installer overhaul, policy refinements, and full PowerShell parity.
Installer
- Multi-harness install via
--harness opencode,claude,copilot/-Harness opencode,claude,copilot. One command, one banner, per-target[name]sections, single🦆 quackfooter. - New
syncaction: manifest-driven install/prune across enabled targets.--prune/-Pruneremoves targets not enabled in manifest. - Manifest schema v1 (
.rubber-duck/manifest.json) tracks source, targets, andpins(sha256 change log). Reinstall skips unchanged files (mtime preserved). - rawBase allowlist: installer only accepts sources under
https://raw.githubusercontent.com/sprngr/rubber-duckunless--allow-untrusted-source/-AllowUntrustedSourceis set. Prevents accidental fork/typo installs. - PowerShell parity:
-DryRun,-Prune,-Harness,-AllowUntrustedSource, script-scoped variables, hoisted security helpers. - Consolidated output: banner +
version:+source:+doctor: ok+ skills printed once; per-target sections show only target-specific actions. - Skills install consolidated: single
npxcall with one-a <agent>per selected target. - Bash installer runtime floor: bash 4+, awk, curl, coreutils.
python3no longer required (pure-bash manifest library). - Env var rename:
BASH_SOURCE_URL→RUBBER_DUCK_SOURCE_URL(shell-agnostic naming, honored by both installers for branch auto-detect). - Backup retention: only the most recent
<file>.bak.*per policy file is kept; prior backups pruned on install/uninstall. --skip-agents-md/-SkipAgentsMdand--extras/-Extrasflags exposed on both installers.
Policy & workflow
- Phase-gated approvals: preflight phase selection (stubs/skeleton/interfaces, wiring/integration, implementation), adaptive caps (6/4/2 files), objective review-fatigue thresholds using changed lines, mandatory re-approval between phases.
- New-file bootstrap rule: new feature files must land as stub/skeleton first, implementation in later phases.
- Docs-as-semantic default: documentation/planning edits treated as semantic changes (preflight + diff + approval); typo-only fixes in non-code text files remain lightweight.
- Approval intent:
approve,approved,ok,go ahead,confirmall accepted (examples explicitly non-exhaustive).
Skills
- Skill metadata versioning aligned to
RUBBER_DUCK_VERSIONformat (vX.Y.Z) across all skills. quackno longer stalls after routing.duck-tapesession-id handling hardened; rotation metadata no longer persisted toCONTEXT.md.- Cross-skill policy consistency pass: removed fixed file-count gating, aligned mutating workflows to phase-gated approvals.
Validation
- Suite expanded to V01–V35; V14 realigned to phase-cap boundary; V30 accepts clear approval intent; V32/V33 cover missing phase preflight and re-approval between phases.
- New V34/V35 cover documentation-as-semantic gate and typo-only cosmetic exception.
Tests & tooling
- Installer test suite with bash + PowerShell parity (8/8 each): fresh install, reinstall pin verify, sync round-trip, rawBase allowlist, claude two-file layout, dry-run no writes, dry-run multi-target layout, sync default source.
- Guardrails drift check now fails on duplicate headings in generated
dist/**/*.md(catches nested-include composition regressions). markdownlint-cli2wired into local pre-commit hook.- Assembly renderers support nested embedded
{{include: ...}}in both skill and harness pipelines.
Fixes
- Installer
--raw-baseno longer silently overwritten by branch default. - PowerShell
sync -Pruneno longer returns early with no enabled targets. - PowerShell security helpers (
Test-RawBaseAllowed,Get-Sha256) hoisted to script scope so sync path enforces allowlist. - Bash sync install loop under
set -uno longer errors on empty enabled-targets array (bash 3.2). - Managed block upsert no longer accumulates blank lines above fences.
- PowerShell script-file execution detection fixed for
-Source local. - PowerShell local-source file resolution uses script-scoped variables.
- Installer sync no longer fails with default source (RAW_BASE ordering fix).
write_pins/Write-Pinsnow honor dry-run.dist/*/agents/rubber-duck.mdno longer duplicates approval-workflow sections.
Full Changelog: v2.0.1...v2.1.0