|
1 | | -# Godpowers 5.1.0 Release |
| 1 | +# Godpowers 5.2.0 Release |
2 | 2 |
|
3 | | -> Status: Published |
| 3 | +> Status: Ready to publish |
4 | 4 | > Date: 2026-07-04 |
5 | 5 |
|
6 | | -[DECISION] Godpowers 5.1.0 is the craft and connectors release. It adopts a set of proven agent-prompting patterns (drawn from studying a current Anthropic system prompt) as a single shared voice and craft contract, and extends the 5.0 connector work with a capability priority ladder. |
7 | | -[DECISION] The release is additive over 5.0. Surface counts are unchanged: 122 slash commands, 40 specialist agents, 13 workflows, 44 recipes, 95 lib modules, 157 have-nots. The `@godpowers/mcp` companion stays at nine read-only tools. No project migration is required. |
| 6 | +[DECISION] Godpowers 5.2.0 is the voice gate release. It promotes the anti-sycophancy half of the 5.1 voice and craft contract from prose guidance to a mechanical gate, closing the caveat that the voice contract was prompt-level and unenforced. |
| 7 | +[DECISION] The release is additive over 5.1. Public command surface is unchanged: 122 slash commands, 40 specialist agents, 13 workflows, 44 recipes. Counts that move: have-nots 157 to 158, lib modules 95 to 96. The `@godpowers/mcp` companion stays at nine read-only tools. No project migration is required. |
8 | 8 |
|
9 | | -## What's new in 5.1.0 |
| 9 | +## What's new in 5.2.0 |
10 | 10 |
|
11 | | -- [DECISION] Voice and craft contract (`references/shared/VOICE.md`), wired globally as Core Principle 15 in `SKILL.md`. Every agent adopts it alongside the have-nots. It defines: constraint tiers (Guideline / Requirement / HARD LIMIT, with the have-nots as the hard-limit tier), an honest anti-sycophancy voice (no gratitude loops, no forced engagement, accountability without self-abasement, scoped uncertainty), minimal formatting for human-facing output, an example-driven-rules convention, and silent application of memory and lessons. |
12 | | -- [DECISION] Worked good/bad example pairs on the highest-traffic have-nots (U-01 substitution, U-02 three-label, U-05 rubber-stamp) so the most-misread rules are resolved by example, not restated. |
13 | | -- [DECISION] Connector capability ladder: `connectors.pickConnector(capability)` walks a priority order (for example Linear then GitHub for issue work) and stops at the first available, enabled connector. A disabled connector is skipped. Documented in `/god-connect`. |
14 | | -- [DECISION] Silent-memory wiring at the memory site: `skills/god-extract-learnings.md` documents applying recalled lessons without narrating the recall, pointing at `VOICE.md`. |
| 11 | +- [DECISION] `lib/voice-lint.js`: a high-precision detector for sycophancy and gratitude-loop filler (praising the question, thanking merely for the message, help-eagerness such as "happy to help", a "hope this helps" sign-off, and forced engagement such as "let me know if you" or "feel free to reach out"). It keeps false positives low by matching only phrases that are almost always filler in engineering communication. Agents can run it on their own drafted output before sending. |
| 12 | +- [DECISION] Have-not U-14 (sycophancy or gratitude loop) in `references/HAVE-NOTS.md`, wired as a universal check in `lib/have-nots-validator.js`. It flags generated artifacts at warning severity and carries a good/bad worked example. This is the mechanical enforcement of the honest-voice section of `references/shared/VOICE.md`. |
| 13 | +- [DECISION] Self-dogfood gate: `scripts/static-check.js` and `scripts/test-voice-lint.js` assert that the framework's own shipped `skills/` and `agents/` prose contains no gratitude-loop filler, enforced in CI. The current surface is already clean, so the gate locks in the clean state going forward. References that intentionally quote the filler as examples (`VOICE.md`, `HAVE-NOTS.md`) are out of scope for the self-dogfood scan. |
15 | 14 |
|
16 | 15 | ## Changes |
17 | 16 |
|
18 | | -- [DECISION] One new shared reference (`references/shared/VOICE.md`) and its index entry in `references/shared/README.md`. No new skill, agent, workflow, recipe, or lib module, so public surface counts are unchanged. |
19 | | -- [DECISION] `lib/connectors.js` gains `CAPABILITY_LADDER` and `pickConnector(...)`, covered by new cases in `scripts/test-connectors.js`. |
20 | | -- [DECISION] `SKILL.md` adds Core Principle 15 (Voice and Craft). `references/HAVE-NOTS.md`, `skills/god-connect.md`, and `skills/god-extract-learnings.md` are updated accordingly. |
21 | | -- [DECISION] `package.json` and `packages/mcp/package.json` publish the 5.1.0 version; CHANGELOG, roadmap, reference, architecture, the architecture map, MCP docs, security supported-versions, and the surface docs now reflect 5.1.0. |
| 17 | +- [DECISION] One new runtime module (`lib/voice-lint.js`; lib module count 95 to 96) with a dedicated test (`scripts/test-voice-lint.js`) wired into `scripts/run-tests.js`. |
| 18 | +- [DECISION] One new documented have-not (U-14; count 157 to 158). `lib/have-nots-validator.js` registers U-14 as a universal check and updates its header count. |
| 19 | +- [DECISION] `package.json` and `packages/mcp/package.json` publish the 5.2.0 version; CHANGELOG, roadmap, reference, architecture, the architecture map, MCP docs, security supported-versions, and the surface docs now reflect 5.2.0. |
22 | 20 |
|
23 | 21 | ## Validation |
24 | 22 |
|
25 | 23 | - [DECISION] `npm test` passes across all command groups (the full `scripts/run-tests.js` suite, 0 failures). |
26 | 24 | - [DECISION] The offline release gate passes: `npm run coverage:lib` (90% lines / 75% branches aggregate, per-file floors), `node scripts/check-per-file-coverage.js`, `git diff --check`, `npm run pack:check`, `npm run pack:mcp:check`, and `npm run test:surface`. The registry-only step (`npm audit --omit=dev`) runs in the tag-triggered publish workflow's `release:check`. |
27 | | -- [DECISION] `node scripts/test-doc-surface-counts.js` passes public surface docs for version 5.1.0 with 122 skills, 40 agents, 13 workflows, 44 recipes, and 95 lib modules. |
| 25 | +- [DECISION] `node scripts/test-doc-surface-counts.js` passes public surface docs for version 5.2.0 with 122 skills, 40 agents, 13 workflows, 44 recipes, and 96 lib modules. |
28 | 26 |
|
29 | 27 | ## Upgrade |
30 | 28 |
|
31 | | -- [DECISION] Use `npm install -g godpowers@5.1.0` or `npx godpowers@5.1.0`. |
32 | | -- [DECISION] Upgrading from 5.0 needs no artifact-format change. Re-run `npx godpowers install` (or your runtime flags, e.g. `npx godpowers --claude --global`) so installed runtimes pick up the refreshed contracts. |
33 | | -- [DECISION] The voice contract and connector ladder are behavioral: they change how agents communicate and choose connectors, not the command surface or on-disk artifacts. |
| 29 | +- [DECISION] Use `npm install -g godpowers@5.2.0` or `npx godpowers@5.2.0`. |
| 30 | +- [DECISION] Upgrading from 5.x needs no artifact-format change. Re-run `npx godpowers install` (or your runtime flags, e.g. `npx godpowers --claude --global`) so installed runtimes pick up the refreshed contracts and the new have-not. |
| 31 | +- [DECISION] The voice gate is additive: it flags gratitude-loop filler in generated artifacts (warning) and blocks it in the framework's own shipped prose (CI). No existing project artifact changes until it is re-linted. |
34 | 32 |
|
35 | 33 | ## Notes |
36 | 34 |
|
37 | | -- [DECISION] The publish targets are npm `godpowers@5.1.0`, npm `@godpowers/mcp@5.1.0`, and GitHub release `https://github.com/hannsxpeter/godpowers/releases/tag/v5.1.0`. |
38 | | -- [DECISION] Publishing is tag-triggered: pushing the `v5.1.0` tag runs `.github/workflows/publish.yml`, which runs `npm run release:check` and publishes both `godpowers` and `@godpowers/mcp` to npm with provenance. Do not `npm publish` by hand; the tag path carries provenance and the release gate. |
| 35 | +- [DECISION] The publish targets are npm `godpowers@5.2.0`, npm `@godpowers/mcp@5.2.0`, and GitHub release `https://github.com/hannsxpeter/godpowers/releases/tag/v5.2.0`. |
| 36 | +- [DECISION] Publishing is tag-triggered: pushing the `v5.2.0` tag runs `.github/workflows/publish.yml`, which runs `npm run release:check` and publishes both `godpowers` and `@godpowers/mcp` to npm with provenance. Do not `npm publish` by hand; the tag path carries provenance and the release gate. |
0 commit comments