Summary:
- Treat /contribute.html and /contribute as first-class SPA routes so
GitHub OAuth callback and documented upload links land on the uploader.
- Switch the browser uploader from multipart/base64 to raw JSONL POSTs
with metadata headers, while keeping JSON file_data and multipart
compatibility on the API.
- Add static upload-flow gates and Vitest coverage for authenticated
upload sanitization, R2 writes, and D1 metadata recording.
- Bump plugin and marketplace versions to 3.4.4.
Rationale:
- The upload path had two breakpoints: documented /contribute.html links
rendered the homepage because routing only checked hash, and multipart
browser uploads could be stripped by proxy/custom-domain behavior.
- Raw JSONL avoids multipart body loss and avoids base64 size/memory bloat
for large session files.
Tests:
- bash evals/test-upload-flow.sh
- bash evals/test-release-consistency.sh
- npm --prefix landing test -- --run src/test/upload-function.test.ts
- static eval suite: governance, feedback auth, heartbeat, integrity
guard, issue regressions, Microsoft flavor, platform compat, loop hook,
Windows Python hooks, YAML frontmatter
- npm --prefix landing run build
- ./landing/node_modules/.bin/tsc -p pi/pua/tsconfig.json
- git diff --check
Co-authored-by: Codex <codex@openai.com>
Summary:
- Add a silent SessionStart heartbeat hook that posts minimal anonymous
install activity to Cloudflare without emitting stdout, stderr, or
additionalContext.
- Add the Cloudflare Pages heartbeat endpoint, D1 migration, and
admin-only stats page at #/admin/heartbeats.
- Add heartbeat regression gates, release consistency checks, FAQ/design
notes, and bump marketplace/package versions to 3.4.3.
Rationale:
- Active-user measurement belongs in a hook-side mechanical gate, not in
the model prompt, so the worker context cannot narrate or leak the
telemetry behavior.
- Privacy gates disable the signal for offline mode, telemetry opt-out,
and feedback-off users before any local telemetry identity is created.
Tests:
- bash evals/test-heartbeat.sh
- bash evals/test-release-consistency.sh
- static eval suite: governance, feedback auth, integrity guard, issue
regressions, Microsoft flavor, platform compat, loop hook, Windows
Python hooks, YAML frontmatter
- bash evals/test-behavior.sh
- npm --prefix landing run build
- ./landing/node_modules/.bin/tsc -p pi/pua/tsconfig.json
- git diff --check
Co-authored-by: Codex <codex@openai.com>
Summary:
- Add shared Python launcher fallback, Git Bash path conversion, and JSON
config readers for hook configuration access.
- Route UserPromptSubmit, PostToolUse, SessionStart, Stop, and integrity
hooks through the shared config reader so /pua:off and feedback_frequency=0
work when only python is available.
- Add issue #159 Windows Git Bash regression coverage and bump all plugin
manifests to v3.2.8.
Rationale:
- Native Windows Python cannot open Git Bash /c/... paths directly, and some
Windows installations provide python without python3.
- The previous fallback treated config read failures as always_on=true, so
/pua:off could still inject PUA on frustration prompts.
Tests:
- for f in hooks/*.sh scripts/*.sh evals/*.sh; do bash -n "$f"; done
- bash evals/test-windows-python-hooks.sh
- bash evals/test-yaml-frontmatter.sh
- bash evals/test-release-consistency.sh
- bash evals/test-agent-governance.sh
- bash evals/test-pua-loop-hook.sh
- bash evals/test-integrity-guard.sh
- bash evals/test-behavior.sh
- bash evals/run-trigger-test.sh
- git diff --check
- python3 JSON parse check for plugin and hook manifests
Co-authored-by: Codex <codex@openai.com>
Summary:
- Add four context-isolated governance agents for action,
self-evaluation, verifier recommendation, and policy review.
- Bind each power to PUA cultural narratives: Alibaba/Musk for
execution, Huawei/Netflix/Jobs for review, ByteDance/JD for
verification, and Tencent/Amazon/Alibaba internal control for policy.
- Document the multi-agent topology in the PUA skill and harness
reference, inject it on SessionStart, add static agent governance evals,
and bump manifests to v3.2.7.
- Harden trigger evals to accept observable PUA behavior when Claude
applies pressure without emitting a Skill tool event before max-turns.
Rationale:
- v3.2.6 created mechanical hook gates; v3.2.7 separates the thinking
contexts too, so execution, review, verification, and environment
approval cannot collapse into one self-proving narrative.
- Cultural narratives provide role-specific pressure, but the agents still
remain advisory compartments under hook/external/human authority.
Tests:
- for f in hooks/*.sh scripts/*.sh evals/*.sh; do bash -n "$f"; done
- bash evals/test-yaml-frontmatter.sh
- bash evals/test-release-consistency.sh
- bash evals/test-agent-governance.sh
- bash evals/test-pua-loop-hook.sh
- bash evals/test-integrity-guard.sh
- bash evals/test-behavior.sh
- bash evals/run-trigger-test.sh
- git diff --check
- python3 JSON manifest validation
Co-authored-by: Codex <codex@openai.com>
Summary:
- Add harness governance reference for four-power separation,
task contracts, verifier-owned status, and memory boundaries.
- Add PreToolUse integrity guard for grader-gaming, solution
contamination, capability-abuse, status, CI, and memory risks.
- Add integrity-guard eval coverage and release gates, then bump
marketplace/plugin manifests to v3.2.6.
Rationale:
- PUA should not just pressure agents to try harder; it should make
it difficult to fake completion by modifying tests, verifier assets,
hidden answers, secrets, or persistent status/memory.
- The guard uses ask/deny decisions so ordinary code changes still
proceed while governance assets require verifier or human approval.
Tests:
- for f in hooks/*.sh scripts/*.sh evals/*.sh; do bash -n "$f"; done
- bash evals/test-yaml-frontmatter.sh
- bash evals/test-release-consistency.sh
- bash evals/test-pua-loop-hook.sh
- bash evals/test-integrity-guard.sh
- bash evals/test-behavior.sh
- bash evals/run-trigger-test.sh
- git diff --check
- python3 JSON manifest validation
Co-authored-by: Codex <codex@openai.com>
Summary:
- Replace the one-line confidence loop with an explicit Confidence Gate
that enumerates claims, finds risks, fixes or discloses them, and
reruns evidence before delivery.
- Make pua-loop Oracle verification portable on macOS/Linux and add
hook smoke tests for verified, rejected, and quoted verify commands.
- Fix trigger/behavior evals so they use portable timeouts, isolated
PUA config, a neutral workspace, and the Claude CLI stream-json
verbose requirement.
- Tighten PUA skill and slash-command descriptions to avoid triggering
on normal first-attempt coding or information requests.
- Bump marketplace/plugin manifests to v3.2.5 with an updated Claude
marketplace changelog summary.
Rationale:
- The previous strategy relied on vague "100% confidence" wording and
left the verification system itself vulnerable to false failures on
macOS, local user config leakage, and workspace-biased false triggers.
- Confidence is now defined as evidence-backed gates: all runnable
checks pass, known high-risk issues are fixed, and residual risks are
disclosed.
Tests:
- bash -n hooks/*.sh scripts/*.sh evals/*.sh
- bash evals/test-yaml-frontmatter.sh
- bash evals/test-release-consistency.sh
- bash evals/test-pua-loop-hook.sh
- bash evals/test-behavior.sh
- bash evals/run-trigger-test.sh
Co-authored-by: Codex <codex@openai.com>
- Add "信心闭环" self-verification loop before delivery in pua SKILL.md
- Fix puav2→pua path references in shot SKILL.md
- Fix flavor detection in stop-feedback hook (read from config)
- Bump version 3.2.3 → 3.2.4 across all plugin manifests
- skills/p7, p9, p10 SKILL.md referenced `references/xxx.md` but the
files live under `skills/pua/references/` — fix to `../pua/references/`
- Add evals/test-yaml-frontmatter.sh regression test for #147
- Bump version to 3.2.2
Ship the #144 fix (ccaa9c0) to all marketplace users via synchronized
version bump across all distribution channels.
Version bumps:
- .claude-plugin/plugin.json: 3.2.0 → 3.2.1
- .claude-plugin/marketplace.json: 3.2.0 → 3.2.1
- .codebuddy-plugin/plugin.json: 3.2.0 → 3.2.1
- .codebuddy-plugin/marketplace.json (top + plugins[0]): 3.2.0 → 3.2.1
- landing/dist/index.html: add v3.2.1 hotfix entry in zh/en/ja changelogs
Fix content (already in main @ ccaa9c0):
- hooks/flavor-helper.sh: initialize PUA_LANGUAGE="" before the config
file existence check so first-run users whose shells run with
set -euo pipefail don't trip 'PUA_LANGUAGE: unbound variable'.
No functional changes beyond #144 — hero brand (v3.2) intentionally
preserved; only manifest-level patch version increments so marketplace
clients will pick up the fix on next sync.
.codebuddy-plugin/{plugin,marketplace}.json: bump versions
- plugin.json: 1.2.0 → 3.2.0
- marketplace.json top-level: 1.0.0 → 3.2.0
- marketplace.json plugin entry: 1.2.0 → 3.2.0
Keeper Test finding: codebuddy manifest was last touched 1 month ago
(cc50d9f). It's a pure manifest wrapper (no independent code), so the
version must track the main project; leaving it at 1.x made the
CodeBuddy marketplace card claim the plugin hadn't shipped since
January. Descriptions stay platform-neutral (no Claude-specific slash
commands) since CodeBuddy command mapping may differ.