@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.
- package/.claude-plugin/plugin.json +13 -13
- package/.codex-plugin/plugin.json +7 -7
- package/CHANGELOG.md +294 -288
- package/README.md +874 -874
- package/TODOS.md +5 -5
- package/agents/docs.toml +6 -6
- package/agents/implementer.toml +6 -6
- package/agents/reviewer.toml +6 -6
- package/agents/security.toml +6 -6
- package/bench/README.md +86 -86
- package/bench/RESULTS.md +35 -35
- package/bench/output-compaction.mjs +65 -65
- package/bench/result-schema.mjs +12 -12
- package/bench/results/claude-2026-07-27T18-03-26.json +50 -50
- package/bench/results/codex-unavailable-1785175418318.json +15 -15
- package/bench/results/gemini-2026-07-27T18-03-44.json +46 -46
- package/bench/run-matrix.mjs +26 -26
- package/bench/run.mjs +106 -106
- package/canon/AGENTS.md +30 -30
- package/canon/context/DECISIONS.md +4 -4
- package/canon/context/GLOSSARY.md +11 -11
- package/canon/context/KNOWLEDGE.md +4 -4
- package/canon/context/PROJECT.md +15 -15
- package/canon/loop/loop-spec.md +65 -65
- package/canon/loop/prd.schema.md +43 -43
- package/canon/manifest.yaml +59 -59
- package/canon/policy/gates.md +7 -7
- package/canon/policy/roles.md +9 -9
- package/canon/skills/ATTRIBUTION.md +99 -99
- package/canon/skills/authoring-prd/SKILL.md +58 -58
- package/canon/skills/brainstorming/SKILL.md +164 -164
- package/canon/skills/codebase-design/DEEPENING.md +15 -15
- package/canon/skills/codebase-design/DESIGN-IT-TWICE.md +12 -12
- package/canon/skills/codebase-design/SKILL.md +39 -39
- package/canon/skills/dispatching-parallel-agents/SKILL.md +182 -182
- package/canon/skills/document-release/SKILL.md +302 -302
- package/canon/skills/domain-modeling/ADR-FORMAT.md +19 -19
- package/canon/skills/domain-modeling/CONTEXT-FORMAT.md +39 -39
- package/canon/skills/domain-modeling/SKILL.md +35 -35
- package/canon/skills/executing-plans/SKILL.md +70 -70
- package/canon/skills/finishing-a-development-branch/SKILL.md +200 -200
- package/canon/skills/health/SKILL.md +177 -177
- package/canon/skills/maintaining-context/SKILL.md +34 -34
- package/canon/skills/minimal-code/SKILL.md +21 -21
- package/canon/skills/no-ai-slop/SKILL.md +103 -103
- package/canon/skills/no-ai-slop/eval.md +43 -43
- package/canon/skills/plan-ceo-review/SKILL.md +541 -541
- package/canon/skills/plan-eng-review/SKILL.md +362 -362
- package/canon/skills/receiving-code-review/SKILL.md +213 -213
- package/canon/skills/requesting-code-review/SKILL.md +105 -105
- package/canon/skills/resolving-merge-conflicts/SKILL.md +18 -18
- package/canon/skills/retro/SKILL.md +397 -397
- package/canon/skills/review/SKILL.md +246 -246
- package/canon/skills/ship/SKILL.md +691 -691
- package/canon/skills/subagent-driven-development/SKILL.md +277 -277
- package/canon/skills/systematic-debugging/SKILL.md +296 -296
- package/canon/skills/tdd/SKILL.md +371 -371
- package/canon/skills/unslop-ui/SKILL.md +34 -34
- package/canon/skills/using-git-worktrees/SKILL.md +218 -218
- package/canon/skills/verification-before-completion/SKILL.md +139 -139
- package/canon/skills/visual-verification/SKILL.md +54 -54
- package/canon/skills/workflow/SKILL.md +22 -22
- package/canon/skills/writing-for-agents/SKILL-MECHANICS.md +27 -27
- package/canon/skills/writing-for-agents/SKILL.md +42 -42
- package/canon/skills/writing-plans/SKILL.md +152 -152
- package/canon/skills/writing-skills/SKILL.md +655 -655
- package/canon/skills/yoke-retrofit/SKILL.md +26 -26
- package/canon/skills/yoke-workflow/SKILL.md +20 -20
- package/canon/tools/codex-rtk-hook.mjs +35 -35
- package/canon/tools/graphify.md +3 -3
- package/canon/tools/playwright-mcp.md +3 -3
- package/canon/tools/rtk.md +7 -7
- package/canon/tools/serena.md +6 -6
- package/dist/agents/process.js +3 -0
- package/dist/loop/watchdog.js +1 -1
- package/dist/prd/command.js +17 -17
- package/dist/retrofit/planners/claude.js +14 -14
- package/dist/retrofit/preserve.js +2 -2
- package/docs/MIGRATING-TO-1.0.md +33 -33
- package/docs/MIGRATING-TO-1.1.md +27 -27
- package/docs/MIGRATING-TO-1.4.md +70 -70
- package/docs/PUBLISHING.md +91 -91
- package/docs/superpowers/plans/2026-06-28-baustein-e-context-layer.md +981 -981
- package/docs/superpowers/plans/2026-06-29-baustein-f-routing.md +258 -258
- package/docs/superpowers/plans/2026-06-29-baustein-g-loop-observability.md +1006 -1006
- package/docs/superpowers/plans/2026-06-29-baustein-h-loop-robustness.md +374 -374
- package/docs/superpowers/plans/2026-06-30-baustein-i-visual-design-verification.md +450 -450
- package/docs/superpowers/plans/2026-07-02-baustein-k-zero-to-100-bootstrap.md +1024 -1024
- package/docs/superpowers/plans/2026-07-02-baustein-m-flow-smoke-proofs.md +574 -574
- package/docs/superpowers/plans/2026-08-13-gauntlet-quality-loop.md +537 -537
- package/docs/superpowers/plans/2026-08-16-artifact-backed-output-compaction.md +329 -329
- package/docs/superpowers/specs/2026-06-28-baustein-e-context-layer-design.md +146 -146
- package/docs/superpowers/specs/2026-06-29-baustein-f-routing-design.md +106 -106
- package/docs/superpowers/specs/2026-06-29-baustein-g-loop-observability-design.md +186 -186
- package/docs/superpowers/specs/2026-06-29-baustein-h-loop-robustness-design.md +113 -113
- package/docs/superpowers/specs/2026-06-30-baustein-i-visual-design-verification-design.md +98 -98
- package/docs/superpowers/specs/2026-07-02-baustein-k-zero-to-100-bootstrap-design.md +200 -200
- package/docs/superpowers/specs/2026-07-02-baustein-m-flow-smoke-proofs-design.md +155 -155
- package/docs/superpowers/specs/2026-08-13-gauntlet-quality-loop-design.md +422 -422
- package/docs/superpowers/specs/2026-08-16-artifact-backed-output-compaction-design.md +166 -166
- package/gemini-extension.json +6 -6
- package/hooks/hooks.json +19 -19
- package/package.json +87 -87
package/docs/PUBLISHING.md
CHANGED
|
@@ -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.
|
|
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.
|