@hecer/yoke 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/.claude-plugin/plugin.json +13 -13
  2. package/.codex-plugin/plugin.json +7 -7
  3. package/CHANGELOG.md +294 -288
  4. package/README.md +874 -874
  5. package/TODOS.md +5 -5
  6. package/agents/docs.toml +6 -6
  7. package/agents/implementer.toml +6 -6
  8. package/agents/reviewer.toml +6 -6
  9. package/agents/security.toml +6 -6
  10. package/bench/README.md +86 -86
  11. package/bench/RESULTS.md +35 -35
  12. package/bench/output-compaction.mjs +65 -65
  13. package/bench/result-schema.mjs +12 -12
  14. package/bench/results/claude-2026-07-27T18-03-26.json +50 -50
  15. package/bench/results/codex-unavailable-1785175418318.json +15 -15
  16. package/bench/results/gemini-2026-07-27T18-03-44.json +46 -46
  17. package/bench/run-matrix.mjs +26 -26
  18. package/bench/run.mjs +106 -106
  19. package/canon/AGENTS.md +30 -30
  20. package/canon/context/DECISIONS.md +4 -4
  21. package/canon/context/GLOSSARY.md +11 -11
  22. package/canon/context/KNOWLEDGE.md +4 -4
  23. package/canon/context/PROJECT.md +15 -15
  24. package/canon/loop/loop-spec.md +65 -65
  25. package/canon/loop/prd.schema.md +43 -43
  26. package/canon/manifest.yaml +59 -59
  27. package/canon/policy/gates.md +7 -7
  28. package/canon/policy/roles.md +9 -9
  29. package/canon/skills/ATTRIBUTION.md +99 -99
  30. package/canon/skills/authoring-prd/SKILL.md +58 -58
  31. package/canon/skills/brainstorming/SKILL.md +164 -164
  32. package/canon/skills/codebase-design/DEEPENING.md +15 -15
  33. package/canon/skills/codebase-design/DESIGN-IT-TWICE.md +12 -12
  34. package/canon/skills/codebase-design/SKILL.md +39 -39
  35. package/canon/skills/dispatching-parallel-agents/SKILL.md +182 -182
  36. package/canon/skills/document-release/SKILL.md +302 -302
  37. package/canon/skills/domain-modeling/ADR-FORMAT.md +19 -19
  38. package/canon/skills/domain-modeling/CONTEXT-FORMAT.md +39 -39
  39. package/canon/skills/domain-modeling/SKILL.md +35 -35
  40. package/canon/skills/executing-plans/SKILL.md +70 -70
  41. package/canon/skills/finishing-a-development-branch/SKILL.md +200 -200
  42. package/canon/skills/health/SKILL.md +177 -177
  43. package/canon/skills/maintaining-context/SKILL.md +34 -34
  44. package/canon/skills/minimal-code/SKILL.md +21 -21
  45. package/canon/skills/no-ai-slop/SKILL.md +103 -103
  46. package/canon/skills/no-ai-slop/eval.md +43 -43
  47. package/canon/skills/plan-ceo-review/SKILL.md +541 -541
  48. package/canon/skills/plan-eng-review/SKILL.md +362 -362
  49. package/canon/skills/receiving-code-review/SKILL.md +213 -213
  50. package/canon/skills/requesting-code-review/SKILL.md +105 -105
  51. package/canon/skills/resolving-merge-conflicts/SKILL.md +18 -18
  52. package/canon/skills/retro/SKILL.md +397 -397
  53. package/canon/skills/review/SKILL.md +246 -246
  54. package/canon/skills/ship/SKILL.md +691 -691
  55. package/canon/skills/subagent-driven-development/SKILL.md +277 -277
  56. package/canon/skills/systematic-debugging/SKILL.md +296 -296
  57. package/canon/skills/tdd/SKILL.md +371 -371
  58. package/canon/skills/unslop-ui/SKILL.md +34 -34
  59. package/canon/skills/using-git-worktrees/SKILL.md +218 -218
  60. package/canon/skills/verification-before-completion/SKILL.md +139 -139
  61. package/canon/skills/visual-verification/SKILL.md +54 -54
  62. package/canon/skills/workflow/SKILL.md +22 -22
  63. package/canon/skills/writing-for-agents/SKILL-MECHANICS.md +27 -27
  64. package/canon/skills/writing-for-agents/SKILL.md +42 -42
  65. package/canon/skills/writing-plans/SKILL.md +152 -152
  66. package/canon/skills/writing-skills/SKILL.md +655 -655
  67. package/canon/skills/yoke-retrofit/SKILL.md +26 -26
  68. package/canon/skills/yoke-workflow/SKILL.md +20 -20
  69. package/canon/tools/codex-rtk-hook.mjs +35 -35
  70. package/canon/tools/graphify.md +3 -3
  71. package/canon/tools/playwright-mcp.md +3 -3
  72. package/canon/tools/rtk.md +7 -7
  73. package/canon/tools/serena.md +6 -6
  74. package/dist/agents/process.js +3 -0
  75. package/dist/loop/watchdog.js +1 -1
  76. package/dist/prd/command.js +17 -17
  77. package/dist/retrofit/planners/claude.js +14 -14
  78. package/dist/retrofit/preserve.js +2 -2
  79. package/docs/MIGRATING-TO-1.0.md +33 -33
  80. package/docs/MIGRATING-TO-1.1.md +27 -27
  81. package/docs/MIGRATING-TO-1.4.md +70 -70
  82. package/docs/PUBLISHING.md +91 -91
  83. package/docs/superpowers/plans/2026-06-28-baustein-e-context-layer.md +981 -981
  84. package/docs/superpowers/plans/2026-06-29-baustein-f-routing.md +258 -258
  85. package/docs/superpowers/plans/2026-06-29-baustein-g-loop-observability.md +1006 -1006
  86. package/docs/superpowers/plans/2026-06-29-baustein-h-loop-robustness.md +374 -374
  87. package/docs/superpowers/plans/2026-06-30-baustein-i-visual-design-verification.md +450 -450
  88. package/docs/superpowers/plans/2026-07-02-baustein-k-zero-to-100-bootstrap.md +1024 -1024
  89. package/docs/superpowers/plans/2026-07-02-baustein-m-flow-smoke-proofs.md +574 -574
  90. package/docs/superpowers/plans/2026-08-13-gauntlet-quality-loop.md +537 -537
  91. package/docs/superpowers/plans/2026-08-16-artifact-backed-output-compaction.md +329 -329
  92. package/docs/superpowers/specs/2026-06-28-baustein-e-context-layer-design.md +146 -146
  93. package/docs/superpowers/specs/2026-06-29-baustein-f-routing-design.md +106 -106
  94. package/docs/superpowers/specs/2026-06-29-baustein-g-loop-observability-design.md +186 -186
  95. package/docs/superpowers/specs/2026-06-29-baustein-h-loop-robustness-design.md +113 -113
  96. package/docs/superpowers/specs/2026-06-30-baustein-i-visual-design-verification-design.md +98 -98
  97. package/docs/superpowers/specs/2026-07-02-baustein-k-zero-to-100-bootstrap-design.md +200 -200
  98. package/docs/superpowers/specs/2026-07-02-baustein-m-flow-smoke-proofs-design.md +155 -155
  99. package/docs/superpowers/specs/2026-08-13-gauntlet-quality-loop-design.md +422 -422
  100. package/docs/superpowers/specs/2026-08-16-artifact-backed-output-compaction-design.md +166 -166
  101. package/gemini-extension.json +6 -6
  102. package/hooks/hooks.json +19 -19
  103. package/package.json +87 -87
@@ -1,91 +1,91 @@
1
- # Publishing channels — status & playbook
2
-
3
- Where Yoke is published, and how each channel gets updated. (Reviewed 2026-08-20.)
4
-
5
- ## Live
6
-
7
- | Channel | How | Update path |
8
- |---|---|---|
9
- | **npm** — [`@hecer/yoke`](https://www.npmjs.com/package/@hecer/yoke) | `npm publish` (2FA) | every release |
10
- | **GitHub** — [HECer/yoke](https://github.com/HECer/yoke) | push + tag + GitHub Release | every release |
11
- | **Claude Code plugin (self-marketplace)** | `.claude-plugin/plugin.json` + `marketplace.json` in this repo; users: `/plugin marketplace add HECer/yoke` → `/plugin install yoke@yoke` | bump `version` in `plugin.json` |
12
- | **Gemini CLI extension** | `gemini-extension.json` + `GEMINI-EXTENSION.md` at repo root; users: `gemini extensions install https://github.com/HECer/yoke` | bump `version` in the manifest |
13
- | **Codex project skills** | `npx @hecer/yoke setup .` writes the canon to `.agents/skills/` plus native Codex config/hooks; `.codex-plugin/plugin.json` is bundled for plugin-capable hosts | every npm release |
14
-
15
- ## GitHub release (required, not just a tag)
16
-
17
- Before the release commit, update every user-facing version and README statistic, then require the
18
- same checks npm will run:
19
-
20
- ```bash
21
- npm run docs:update
22
- npm run docs:check
23
- npm run prepublishOnly
24
- ```
25
-
26
- `docs:update` synchronizes the README's package version, test count, skill count, and supported
27
- agents from `package.json`, Vitest discovery, and `canon/manifest.yaml`. The version must also be
28
- kept in sync in `package-lock.json`, `canon/manifest.yaml`, `.claude-plugin/plugin.json`,
29
- `.codex-plugin/plugin.json`, and `gemini-extension.json`.
30
-
31
- A pushed tag appears under **Tags**, but GitHub only shows an entry under **Releases** after a
32
- release object is created. Use this idempotent check after the version commit reaches `main`:
33
-
34
- ```bash
35
- set -euo pipefail
36
- VERSION=1.6.0
37
- TARGET=$(git rev-parse HEAD)
38
- git fetch --tags origin
39
-
40
- REMOTE=$(git ls-remote origin "refs/tags/v$VERSION^{}" | awk 'NR == 1 { print $1 }')
41
- if [ -z "$REMOTE" ]; then
42
- REMOTE=$(git ls-remote origin "refs/tags/v$VERSION" | awk 'NR == 1 { print $1 }')
43
- fi
44
- if [ -n "$REMOTE" ] && [ "$REMOTE" != "$TARGET" ]; then
45
- echo "origin/v$VERSION already points at a different commit" >&2
46
- exit 1
47
- fi
48
-
49
- if git rev-parse -q --verify "refs/tags/v$VERSION" >/dev/null; then
50
- test "$(git rev-list -n 1 "v$VERSION")" = "$TARGET" || {
51
- echo "v$VERSION already points at a different commit" >&2
52
- exit 1
53
- }
54
- else
55
- git tag "v$VERSION"
56
- fi
57
- git push origin "refs/tags/v$VERSION"
58
- gh release view "v$VERSION" >/dev/null 2>&1 || \
59
- gh release create "v$VERSION" --title "Yoke $VERSION" --generate-notes
60
- ```
61
-
62
- Verify both surfaces before publishing npm: `gh release view "v$VERSION"` and
63
- `npm view @hecer/yoke version`.
64
-
65
- ## Submitted / pending
66
-
67
- | Channel | How | Status |
68
- |---|---|---|
69
- | **Gemini extensions gallery** (geminicli.com/extensions) | automatic daily crawl: needs `gemini-extension.json` at repo root + `gemini-cli-extension` repo topic — both done | wait for crawler |
70
- | **Anthropic community plugin directory** (`claude-community`, surfaced in `/plugin > Discover`) | form at **platform.claude.com/plugins/submit** (Console account, Developer role; submit the public repo URL; `claude plugin validate` runs in their pipeline — passes locally). After approval: pinned to a commit SHA, CI auto-bumps on push, catalog syncs nightly | **needs a human login** — see below |
71
-
72
- ### Anthropic directory submission (manual step)
73
-
74
- 1. Log in at https://platform.claude.com (free Console account is enough; role Developer+).
75
- 2. Open https://platform.claude.com/plugins/submit
76
- 3. Submit the public repo: `https://github.com/HECer/yoke`
77
- 4. Suggested description: *"Cross-agent coding harness: one curated skill canon (TDD,
78
- brainstorming → spec → plan, systematic debugging, cross-model review, design
79
- verification) plus mechanical safety gates and an autonomous loop via the yoke CLI."*
80
- 5. Category: development. Plugin name (immutable): `yoke`.
81
-
82
- ## Worth doing later (community lists, PR/issue-based)
83
-
84
- - **awesome-claude-code** (hesreallyhim) — issue-form only, explicitly human-submitted, no PRs.
85
- - **ComposioHQ/awesome-claude-plugins** — PR per template (high merge latency).
86
- - **davila7/claude-code-templates** (aitmpl.com) — PR per CONTRIBUTING.md.
87
- - **Codex plugin directory** — public directory submission remains a separate channel. Codex
88
- users do not need it: the npm setup path installs native project skills deterministically.
89
- - Auto-crawled directories (crossaitools.com etc.) pick the repo up on their own once the
90
- marketplace manifest exists.
91
- - Launch channels (Product Hunt, Show HN, r/ClaudeAI, r/ClaudeCode) — deliberate, human-led.
1
+ # Publishing channels — status & playbook
2
+
3
+ Where Yoke is published, and how each channel gets updated. (Reviewed 2026-08-20.)
4
+
5
+ ## Live
6
+
7
+ | Channel | How | Update path |
8
+ |---|---|---|
9
+ | **npm** — [`@hecer/yoke`](https://www.npmjs.com/package/@hecer/yoke) | `npm publish` (2FA) | every release |
10
+ | **GitHub** — [HECer/yoke](https://github.com/HECer/yoke) | push + tag + GitHub Release | every release |
11
+ | **Claude Code plugin (self-marketplace)** | `.claude-plugin/plugin.json` + `marketplace.json` in this repo; users: `/plugin marketplace add HECer/yoke` → `/plugin install yoke@yoke` | bump `version` in `plugin.json` |
12
+ | **Gemini CLI extension** | `gemini-extension.json` + `GEMINI-EXTENSION.md` at repo root; users: `gemini extensions install https://github.com/HECer/yoke` | bump `version` in the manifest |
13
+ | **Codex project skills** | `npx @hecer/yoke setup .` writes the canon to `.agents/skills/` plus native Codex config/hooks; `.codex-plugin/plugin.json` is bundled for plugin-capable hosts | every npm release |
14
+
15
+ ## GitHub release (required, not just a tag)
16
+
17
+ Before the release commit, update every user-facing version and README statistic, then require the
18
+ same checks npm will run:
19
+
20
+ ```bash
21
+ npm run docs:update
22
+ npm run docs:check
23
+ npm run prepublishOnly
24
+ ```
25
+
26
+ `docs:update` synchronizes the README's package version, test count, skill count, and supported
27
+ agents from `package.json`, Vitest discovery, and `canon/manifest.yaml`. The version must also be
28
+ kept in sync in `package-lock.json`, `canon/manifest.yaml`, `.claude-plugin/plugin.json`,
29
+ `.codex-plugin/plugin.json`, and `gemini-extension.json`.
30
+
31
+ A pushed tag appears under **Tags**, but GitHub only shows an entry under **Releases** after a
32
+ release object is created. Use this idempotent check after the version commit reaches `main`:
33
+
34
+ ```bash
35
+ set -euo pipefail
36
+ VERSION=1.6.1
37
+ TARGET=$(git rev-parse HEAD)
38
+ git fetch --tags origin
39
+
40
+ REMOTE=$(git ls-remote origin "refs/tags/v$VERSION^{}" | awk 'NR == 1 { print $1 }')
41
+ if [ -z "$REMOTE" ]; then
42
+ REMOTE=$(git ls-remote origin "refs/tags/v$VERSION" | awk 'NR == 1 { print $1 }')
43
+ fi
44
+ if [ -n "$REMOTE" ] && [ "$REMOTE" != "$TARGET" ]; then
45
+ echo "origin/v$VERSION already points at a different commit" >&2
46
+ exit 1
47
+ fi
48
+
49
+ if git rev-parse -q --verify "refs/tags/v$VERSION" >/dev/null; then
50
+ test "$(git rev-list -n 1 "v$VERSION")" = "$TARGET" || {
51
+ echo "v$VERSION already points at a different commit" >&2
52
+ exit 1
53
+ }
54
+ else
55
+ git tag "v$VERSION"
56
+ fi
57
+ git push origin "refs/tags/v$VERSION"
58
+ gh release view "v$VERSION" >/dev/null 2>&1 || \
59
+ gh release create "v$VERSION" --title "Yoke $VERSION" --generate-notes
60
+ ```
61
+
62
+ Verify both surfaces before publishing npm: `gh release view "v$VERSION"` and
63
+ `npm view @hecer/yoke version`.
64
+
65
+ ## Submitted / pending
66
+
67
+ | Channel | How | Status |
68
+ |---|---|---|
69
+ | **Gemini extensions gallery** (geminicli.com/extensions) | automatic daily crawl: needs `gemini-extension.json` at repo root + `gemini-cli-extension` repo topic — both done | wait for crawler |
70
+ | **Anthropic community plugin directory** (`claude-community`, surfaced in `/plugin > Discover`) | form at **platform.claude.com/plugins/submit** (Console account, Developer role; submit the public repo URL; `claude plugin validate` runs in their pipeline — passes locally). After approval: pinned to a commit SHA, CI auto-bumps on push, catalog syncs nightly | **needs a human login** — see below |
71
+
72
+ ### Anthropic directory submission (manual step)
73
+
74
+ 1. Log in at https://platform.claude.com (free Console account is enough; role Developer+).
75
+ 2. Open https://platform.claude.com/plugins/submit
76
+ 3. Submit the public repo: `https://github.com/HECer/yoke`
77
+ 4. Suggested description: *"Cross-agent coding harness: one curated skill canon (TDD,
78
+ brainstorming → spec → plan, systematic debugging, cross-model review, design
79
+ verification) plus mechanical safety gates and an autonomous loop via the yoke CLI."*
80
+ 5. Category: development. Plugin name (immutable): `yoke`.
81
+
82
+ ## Worth doing later (community lists, PR/issue-based)
83
+
84
+ - **awesome-claude-code** (hesreallyhim) — issue-form only, explicitly human-submitted, no PRs.
85
+ - **ComposioHQ/awesome-claude-plugins** — PR per template (high merge latency).
86
+ - **davila7/claude-code-templates** (aitmpl.com) — PR per CONTRIBUTING.md.
87
+ - **Codex plugin directory** — public directory submission remains a separate channel. Codex
88
+ users do not need it: the npm setup path installs native project skills deterministically.
89
+ - Auto-crawled directories (crossaitools.com etc.) pick the repo up on their own once the
90
+ marketplace manifest exists.
91
+ - Launch channels (Product Hunt, Show HN, r/ClaudeAI, r/ClaudeCode) — deliberate, human-led.