@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/canon/loop/loop-spec.md
CHANGED
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
# Loop Specification (Ralph + GSD)
|
|
2
|
-
|
|
3
|
-
The autonomous loop is optional and toggle-able:
|
|
4
|
-
|
|
5
|
-
- `yoke loop on` / `yoke loop off` — enable or disable it in `.yoke/config.yaml`.
|
|
6
|
-
- `yoke loop status` — show enabled state and backlog progress.
|
|
7
|
-
- `yoke loop run [--max=N] [--parallel=N] [--isolate] [--decision-policy=auto|critical] [--quality|--no-quality] [--quality-rounds=N] [--quality-minutes=N] [--quality-policy=blocking|advisory] [--quality-unbounded] [--candidates=N]` — run until the current backlog is green or a gate blocks.
|
|
8
|
-
- `yoke change add --idea="..."` — queue a product change at any time, including while the loop is running.
|
|
9
|
-
- `yoke loop decision` / `yoke loop answer --choice=<id>` — inspect and answer a structured critical stop.
|
|
10
|
-
|
|
11
|
-
Pass `--isolate` to implement each story in a fresh git worktree. Only a verified, committed
|
|
12
|
-
story is fast-forwarded to the main tree. Pass `--review` or `--reviewer=<provider>` to require
|
|
13
|
-
a separate, schema-validated review. Pass `--parallel=N` to dispatch ready, non-colliding stories
|
|
14
|
-
concurrently. Pass `--json` for NDJSON status on stdout.
|
|
15
|
-
|
|
16
|
-
Stories may declare a reference, candidate artifact, rubric, and blocking/advisory quality policy.
|
|
17
|
-
`--quality` runs a read-only blind critic plus bounded repair before review; every repair reruns the
|
|
18
|
-
mechanical gates. `--candidates=N` requires quality declarations and dispatches multiple isolated
|
|
19
|
-
implementations, rejects mechanically red candidates, selects one green candidate through opaque
|
|
20
|
-
pairwise handles, and retains every candidate's terminal proof before cleanup. Parallel/candidate
|
|
21
|
-
runs do not combine with adaptive routing.
|
|
22
|
-
|
|
23
|
-
At every story boundary, Yoke consumes at most one queued change. The configured Claude,
|
|
24
|
-
Codex, or Gemini provider may propose only new stories in a separate runtime file. A fresh
|
|
25
|
-
coverage-review pass must account for every distinct requested outcome before Yoke validates
|
|
26
|
-
strict criterion evidence, appends the stories itself, commits only the PRD, and leaves existing
|
|
27
|
-
stories untouched. The request stays pending on any failure or uncovered outcome.
|
|
28
|
-
|
|
29
|
-
For each story:
|
|
30
|
-
|
|
31
|
-
1. Require a clean git worktree.
|
|
32
|
-
2. Pick the highest-priority ready unfinished story, or claim multiple dependency-ready stories
|
|
33
|
-
whose collision areas do not overlap when parallel dispatch is enabled.
|
|
34
|
-
3. Stop the line if acceptance is empty. With `verify.requireCriteria: true`, every criterion
|
|
35
|
-
must be structured. Every structured criterion, including in compatible legacy projects,
|
|
36
|
-
must use a single approved test command containing its criterion ID and no shell operators.
|
|
37
|
-
4. Run a fresh configured provider to implement exactly one story. Under the `critical`
|
|
38
|
-
decision policy, only high-impact architecture, security/privacy, destructive data,
|
|
39
|
-
material cost, compliance, or irreversible choices may pause for a human decision.
|
|
40
|
-
5. Run every structured criterion's targeted commands and write
|
|
41
|
-
`.yoke/proof/<story>/evidence.json`. Then run project-wide `verify.command` (or detected
|
|
42
|
-
`npm test`). Performance and audit follow when configured. If quality is enabled, collect the
|
|
43
|
-
declared artifact, run the blind critic, and repair within the configured round/time bounds.
|
|
44
|
-
Independent review follows. Any blocking failure stops the candidate.
|
|
45
|
-
6. Parallel workers enqueue green candidate commits. The integrator applies one at a time and
|
|
46
|
-
reruns mechanical gates, fresh quality, and review against the integrated tree. Failed
|
|
47
|
-
integration reopens the story and retains proof.
|
|
48
|
-
7. Only after all gates pass, mark the story `passes: true`, log the decision, and commit
|
|
49
|
-
atomically. A failed commit restores the PRD state.
|
|
50
|
-
8. When all current stories pass, run optional `completion.command` against the integrated
|
|
51
|
-
system. Only a green result reports `complete`; otherwise the loop blocks. This readiness
|
|
52
|
-
result is ephemeral, not a release and not a freeze on future changes.
|
|
53
|
-
|
|
54
|
-
A supervisor can pause the loop by creating `.yoke/loop.pause`. The running story finishes;
|
|
55
|
-
the dispatcher latches the signal, stops launching new workers, lets active workers reach safe
|
|
56
|
-
terminal proof/cleanup, and exits with code `3` before another story is integrated.
|
|
57
|
-
|
|
58
|
-
State lives outside model context: PRD, git, and the ignored `.yoke/changes/` inbox. All are
|
|
59
|
-
re-read at story boundaries, so a request queued mid-run becomes additional stories without a
|
|
60
|
-
restart.
|
|
61
|
-
|
|
62
|
-
## Limitations
|
|
63
|
-
|
|
64
|
-
Yoke cannot infer the correct end-to-end journey command. Projects that need integrated
|
|
65
|
-
readiness must configure `completion.command`, for example a Playwright journey suite.
|
|
1
|
+
# Loop Specification (Ralph + GSD)
|
|
2
|
+
|
|
3
|
+
The autonomous loop is optional and toggle-able:
|
|
4
|
+
|
|
5
|
+
- `yoke loop on` / `yoke loop off` — enable or disable it in `.yoke/config.yaml`.
|
|
6
|
+
- `yoke loop status` — show enabled state and backlog progress.
|
|
7
|
+
- `yoke loop run [--max=N] [--parallel=N] [--isolate] [--decision-policy=auto|critical] [--quality|--no-quality] [--quality-rounds=N] [--quality-minutes=N] [--quality-policy=blocking|advisory] [--quality-unbounded] [--candidates=N]` — run until the current backlog is green or a gate blocks.
|
|
8
|
+
- `yoke change add --idea="..."` — queue a product change at any time, including while the loop is running.
|
|
9
|
+
- `yoke loop decision` / `yoke loop answer --choice=<id>` — inspect and answer a structured critical stop.
|
|
10
|
+
|
|
11
|
+
Pass `--isolate` to implement each story in a fresh git worktree. Only a verified, committed
|
|
12
|
+
story is fast-forwarded to the main tree. Pass `--review` or `--reviewer=<provider>` to require
|
|
13
|
+
a separate, schema-validated review. Pass `--parallel=N` to dispatch ready, non-colliding stories
|
|
14
|
+
concurrently. Pass `--json` for NDJSON status on stdout.
|
|
15
|
+
|
|
16
|
+
Stories may declare a reference, candidate artifact, rubric, and blocking/advisory quality policy.
|
|
17
|
+
`--quality` runs a read-only blind critic plus bounded repair before review; every repair reruns the
|
|
18
|
+
mechanical gates. `--candidates=N` requires quality declarations and dispatches multiple isolated
|
|
19
|
+
implementations, rejects mechanically red candidates, selects one green candidate through opaque
|
|
20
|
+
pairwise handles, and retains every candidate's terminal proof before cleanup. Parallel/candidate
|
|
21
|
+
runs do not combine with adaptive routing.
|
|
22
|
+
|
|
23
|
+
At every story boundary, Yoke consumes at most one queued change. The configured Claude,
|
|
24
|
+
Codex, or Gemini provider may propose only new stories in a separate runtime file. A fresh
|
|
25
|
+
coverage-review pass must account for every distinct requested outcome before Yoke validates
|
|
26
|
+
strict criterion evidence, appends the stories itself, commits only the PRD, and leaves existing
|
|
27
|
+
stories untouched. The request stays pending on any failure or uncovered outcome.
|
|
28
|
+
|
|
29
|
+
For each story:
|
|
30
|
+
|
|
31
|
+
1. Require a clean git worktree.
|
|
32
|
+
2. Pick the highest-priority ready unfinished story, or claim multiple dependency-ready stories
|
|
33
|
+
whose collision areas do not overlap when parallel dispatch is enabled.
|
|
34
|
+
3. Stop the line if acceptance is empty. With `verify.requireCriteria: true`, every criterion
|
|
35
|
+
must be structured. Every structured criterion, including in compatible legacy projects,
|
|
36
|
+
must use a single approved test command containing its criterion ID and no shell operators.
|
|
37
|
+
4. Run a fresh configured provider to implement exactly one story. Under the `critical`
|
|
38
|
+
decision policy, only high-impact architecture, security/privacy, destructive data,
|
|
39
|
+
material cost, compliance, or irreversible choices may pause for a human decision.
|
|
40
|
+
5. Run every structured criterion's targeted commands and write
|
|
41
|
+
`.yoke/proof/<story>/evidence.json`. Then run project-wide `verify.command` (or detected
|
|
42
|
+
`npm test`). Performance and audit follow when configured. If quality is enabled, collect the
|
|
43
|
+
declared artifact, run the blind critic, and repair within the configured round/time bounds.
|
|
44
|
+
Independent review follows. Any blocking failure stops the candidate.
|
|
45
|
+
6. Parallel workers enqueue green candidate commits. The integrator applies one at a time and
|
|
46
|
+
reruns mechanical gates, fresh quality, and review against the integrated tree. Failed
|
|
47
|
+
integration reopens the story and retains proof.
|
|
48
|
+
7. Only after all gates pass, mark the story `passes: true`, log the decision, and commit
|
|
49
|
+
atomically. A failed commit restores the PRD state.
|
|
50
|
+
8. When all current stories pass, run optional `completion.command` against the integrated
|
|
51
|
+
system. Only a green result reports `complete`; otherwise the loop blocks. This readiness
|
|
52
|
+
result is ephemeral, not a release and not a freeze on future changes.
|
|
53
|
+
|
|
54
|
+
A supervisor can pause the loop by creating `.yoke/loop.pause`. The running story finishes;
|
|
55
|
+
the dispatcher latches the signal, stops launching new workers, lets active workers reach safe
|
|
56
|
+
terminal proof/cleanup, and exits with code `3` before another story is integrated.
|
|
57
|
+
|
|
58
|
+
State lives outside model context: PRD, git, and the ignored `.yoke/changes/` inbox. All are
|
|
59
|
+
re-read at story boundaries, so a request queued mid-run becomes additional stories without a
|
|
60
|
+
restart.
|
|
61
|
+
|
|
62
|
+
## Limitations
|
|
63
|
+
|
|
64
|
+
Yoke cannot infer the correct end-to-end journey command. Projects that need integrated
|
|
65
|
+
readiness must configure `completion.command`, for example a Playwright journey suite.
|
package/canon/loop/prd.schema.md
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
# PRD Schema
|
|
2
|
-
|
|
3
|
-
The loop is driven by a continuous PRD backlog. Each story:
|
|
4
|
-
|
|
5
|
-
```yaml
|
|
6
|
-
- id: STORY-1
|
|
7
|
-
title: Short imperative description
|
|
8
|
-
priority: 1 # lower = higher priority
|
|
9
|
-
needs: [] # optional dependency IDs; no unknown IDs, self-links, or cycles
|
|
10
|
-
area: api # optional collision domain for parallel scheduling
|
|
11
|
-
agent: codex # optional claude|codex|gemini affinity
|
|
12
|
-
acceptance:
|
|
13
|
-
- id: valid-request-returns-200
|
|
14
|
-
text: The endpoint returns 200 for a valid request.
|
|
15
|
-
verify: [npm run test:valid-request-returns-200]
|
|
16
|
-
- id: invalid-request-returns-400
|
|
17
|
-
text: The endpoint returns 400 for an invalid request.
|
|
18
|
-
verify: [npm run test:invalid-request-returns-400]
|
|
19
|
-
passes: false # Yoke-owned; true only after all gates pass and the commit lands
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Each new story has 2–5 acceptance criteria. Every criterion has a stable `id`, observable
|
|
23
|
-
behavioral `text`, and one or more executable `verify` commands. Each entry is one approved test
|
|
24
|
-
command, contains the normalized criterion ID, and contains no shell control operator. Yoke runs and records each criterion separately in
|
|
25
|
-
`.yoke/proof/<story>/evidence.json`; a broad green suite cannot stand in for an untested
|
|
26
|
-
criterion. Legacy string criteria remain readable, but `verify.requireCriteria: true` blocks
|
|
27
|
-
them.
|
|
28
|
-
|
|
29
|
-
The binding is deliberately mechanical, not an oracle for product meaning: Yoke can require a
|
|
30
|
-
criterion-targeted test command and a separate coverage review, but it cannot prove that arbitrary
|
|
31
|
-
test code faithfully models the real world. Critical cross-component behavior therefore also
|
|
32
|
-
belongs in a trusted `completion.command` journey suite.
|
|
33
|
-
|
|
34
|
-
`sourceChange` is an optional Yoke-owned request ID. The change inbox uses it to append new
|
|
35
|
-
stories idempotently; authors normally omit it.
|
|
36
|
-
|
|
37
|
-
Stories without `needs`, `area`, or `agent` retain serial behavior. A story is ready only when
|
|
38
|
-
every ID in `needs` passes. The scheduler orders ready work by priority, avoids simultaneously
|
|
39
|
-
active areas, and uses `agent` as an affinity hint.
|
|
40
|
-
|
|
41
|
-
The backlog is continuous, not a release object. A momentary stop condition is every story
|
|
42
|
-
having `passes: true`; if configured, `completion.command` must then prove the integrated
|
|
43
|
-
system before the loop reports `complete`.
|
|
1
|
+
# PRD Schema
|
|
2
|
+
|
|
3
|
+
The loop is driven by a continuous PRD backlog. Each story:
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
- id: STORY-1
|
|
7
|
+
title: Short imperative description
|
|
8
|
+
priority: 1 # lower = higher priority
|
|
9
|
+
needs: [] # optional dependency IDs; no unknown IDs, self-links, or cycles
|
|
10
|
+
area: api # optional collision domain for parallel scheduling
|
|
11
|
+
agent: codex # optional claude|codex|gemini affinity
|
|
12
|
+
acceptance:
|
|
13
|
+
- id: valid-request-returns-200
|
|
14
|
+
text: The endpoint returns 200 for a valid request.
|
|
15
|
+
verify: [npm run test:valid-request-returns-200]
|
|
16
|
+
- id: invalid-request-returns-400
|
|
17
|
+
text: The endpoint returns 400 for an invalid request.
|
|
18
|
+
verify: [npm run test:invalid-request-returns-400]
|
|
19
|
+
passes: false # Yoke-owned; true only after all gates pass and the commit lands
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Each new story has 2–5 acceptance criteria. Every criterion has a stable `id`, observable
|
|
23
|
+
behavioral `text`, and one or more executable `verify` commands. Each entry is one approved test
|
|
24
|
+
command, contains the normalized criterion ID, and contains no shell control operator. Yoke runs and records each criterion separately in
|
|
25
|
+
`.yoke/proof/<story>/evidence.json`; a broad green suite cannot stand in for an untested
|
|
26
|
+
criterion. Legacy string criteria remain readable, but `verify.requireCriteria: true` blocks
|
|
27
|
+
them.
|
|
28
|
+
|
|
29
|
+
The binding is deliberately mechanical, not an oracle for product meaning: Yoke can require a
|
|
30
|
+
criterion-targeted test command and a separate coverage review, but it cannot prove that arbitrary
|
|
31
|
+
test code faithfully models the real world. Critical cross-component behavior therefore also
|
|
32
|
+
belongs in a trusted `completion.command` journey suite.
|
|
33
|
+
|
|
34
|
+
`sourceChange` is an optional Yoke-owned request ID. The change inbox uses it to append new
|
|
35
|
+
stories idempotently; authors normally omit it.
|
|
36
|
+
|
|
37
|
+
Stories without `needs`, `area`, or `agent` retain serial behavior. A story is ready only when
|
|
38
|
+
every ID in `needs` passes. The scheduler orders ready work by priority, avoids simultaneously
|
|
39
|
+
active areas, and uses `agent` as an affinity hint.
|
|
40
|
+
|
|
41
|
+
The backlog is continuous, not a release object. A momentary stop condition is every story
|
|
42
|
+
having `passes: true`; if configured, `completion.command` must then prove the integrated
|
|
43
|
+
system before the loop reports `complete`.
|
package/canon/manifest.yaml
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
name: yoke-canon
|
|
2
|
-
version: 1.6.
|
|
3
|
-
agents: [claude, codex, gemini]
|
|
4
|
-
skills:
|
|
5
|
-
- { id: tdd, path: skills/tdd, kind: methodology, invocation: auto }
|
|
6
|
-
- { id: yoke-retrofit, path: skills/yoke-retrofit, kind: methodology, invocation: auto }
|
|
7
|
-
- { id: yoke-workflow, path: skills/yoke-workflow, kind: methodology, invocation: auto }
|
|
8
|
-
- { id: minimal-code, path: skills/minimal-code, kind: methodology, invocation: auto }
|
|
9
|
-
- { id: maintaining-context, path: skills/maintaining-context, kind: methodology, invocation: auto }
|
|
10
|
-
# superpowers skills (kind: methodology)
|
|
11
|
-
- { id: brainstorming, path: skills/brainstorming, kind: methodology, invocation: auto }
|
|
12
|
-
- { id: writing-plans, path: skills/writing-plans, kind: methodology, invocation: auto }
|
|
13
|
-
- { id: executing-plans, path: skills/executing-plans, kind: methodology, invocation: auto }
|
|
14
|
-
- { id: subagent-driven-development, path: skills/subagent-driven-development, kind: methodology, invocation: auto }
|
|
15
|
-
- { id: systematic-debugging, path: skills/systematic-debugging, kind: methodology, invocation: auto }
|
|
16
|
-
- { id: verification-before-completion, path: skills/verification-before-completion, kind: methodology, invocation: auto }
|
|
17
|
-
- { id: using-git-worktrees, path: skills/using-git-worktrees, kind: methodology, invocation: auto }
|
|
18
|
-
- { id: requesting-code-review, path: skills/requesting-code-review, kind: methodology, invocation: auto }
|
|
19
|
-
- { id: receiving-code-review, path: skills/receiving-code-review, kind: methodology, invocation: auto }
|
|
20
|
-
- { id: dispatching-parallel-agents, path: skills/dispatching-parallel-agents, kind: methodology, invocation: auto }
|
|
21
|
-
- { id: finishing-a-development-branch, path: skills/finishing-a-development-branch, kind: methodology, invocation: auto }
|
|
22
|
-
- { id: writing-skills, path: skills/writing-skills, kind: methodology, invocation: auto }
|
|
23
|
-
# gstack skills (kind: role)
|
|
24
|
-
- { id: review, path: skills/review, kind: role, invocation: auto }
|
|
25
|
-
- { id: ship, path: skills/ship, kind: role, invocation: auto }
|
|
26
|
-
- { id: health, path: skills/health, kind: role, invocation: auto }
|
|
27
|
-
- { id: retro, path: skills/retro, kind: role, invocation: auto }
|
|
28
|
-
- { id: document-release, path: skills/document-release, kind: role, invocation: auto }
|
|
29
|
-
- { id: plan-ceo-review, path: skills/plan-ceo-review, kind: role, invocation: auto }
|
|
30
|
-
- { id: plan-eng-review, path: skills/plan-eng-review, kind: role, invocation: auto }
|
|
31
|
-
# authored workflow skill (kind: methodology)
|
|
32
|
-
- { id: workflow, path: skills/workflow, kind: methodology, invocation: auto }
|
|
33
|
-
# visual & design verification (kind: methodology)
|
|
34
|
-
- { id: unslop-ui, path: skills/unslop-ui, kind: methodology, invocation: auto }
|
|
35
|
-
- { id: visual-verification, path: skills/visual-verification, kind: methodology, invocation: auto }
|
|
36
|
-
# zero-to-100 bootstrap (kind: methodology)
|
|
37
|
-
- { id: authoring-prd, path: skills/authoring-prd, kind: methodology, invocation: auto }
|
|
38
|
-
# measured efficiency (kind: methodology)
|
|
39
|
-
- { id: performance, path: skills/performance, kind: methodology, invocation: auto }
|
|
40
|
-
# prose, domain, and codebase capabilities
|
|
41
|
-
- { id: no-ai-slop, path: skills/no-ai-slop, kind: methodology, invocation: auto }
|
|
42
|
-
- { id: domain-modeling, path: skills/domain-modeling, kind: methodology, invocation: auto }
|
|
43
|
-
- { id: codebase-design, path: skills/codebase-design, kind: methodology, invocation: auto }
|
|
44
|
-
- { id: resolving-merge-conflicts, path: skills/resolving-merge-conflicts, kind: methodology, invocation: auto }
|
|
45
|
-
- { id: writing-for-agents, path: skills/writing-for-agents, kind: methodology, invocation: auto }
|
|
46
|
-
policy:
|
|
47
|
-
- { path: policy/gates.md }
|
|
48
|
-
- { path: policy/roles.md }
|
|
49
|
-
loop:
|
|
50
|
-
spec: loop/loop-spec.md
|
|
51
|
-
prdSchema: loop/prd.schema.md
|
|
52
|
-
tools:
|
|
53
|
-
- { id: rtk, path: tools/rtk.md }
|
|
54
|
-
- { id: graphify, path: tools/graphify.md }
|
|
55
|
-
- { id: playwright-mcp, path: tools/playwright-mcp.md }
|
|
56
|
-
- { id: serena, path: tools/serena.md }
|
|
57
|
-
# optional companions (external installers; documented wiring only)
|
|
58
|
-
- { id: claude-mem, path: tools/claude-mem.md }
|
|
59
|
-
- { id: ui-ux-pro-max, path: tools/ui-ux-pro-max.md }
|
|
1
|
+
name: yoke-canon
|
|
2
|
+
version: 1.6.1
|
|
3
|
+
agents: [claude, codex, gemini]
|
|
4
|
+
skills:
|
|
5
|
+
- { id: tdd, path: skills/tdd, kind: methodology, invocation: auto }
|
|
6
|
+
- { id: yoke-retrofit, path: skills/yoke-retrofit, kind: methodology, invocation: auto }
|
|
7
|
+
- { id: yoke-workflow, path: skills/yoke-workflow, kind: methodology, invocation: auto }
|
|
8
|
+
- { id: minimal-code, path: skills/minimal-code, kind: methodology, invocation: auto }
|
|
9
|
+
- { id: maintaining-context, path: skills/maintaining-context, kind: methodology, invocation: auto }
|
|
10
|
+
# superpowers skills (kind: methodology)
|
|
11
|
+
- { id: brainstorming, path: skills/brainstorming, kind: methodology, invocation: auto }
|
|
12
|
+
- { id: writing-plans, path: skills/writing-plans, kind: methodology, invocation: auto }
|
|
13
|
+
- { id: executing-plans, path: skills/executing-plans, kind: methodology, invocation: auto }
|
|
14
|
+
- { id: subagent-driven-development, path: skills/subagent-driven-development, kind: methodology, invocation: auto }
|
|
15
|
+
- { id: systematic-debugging, path: skills/systematic-debugging, kind: methodology, invocation: auto }
|
|
16
|
+
- { id: verification-before-completion, path: skills/verification-before-completion, kind: methodology, invocation: auto }
|
|
17
|
+
- { id: using-git-worktrees, path: skills/using-git-worktrees, kind: methodology, invocation: auto }
|
|
18
|
+
- { id: requesting-code-review, path: skills/requesting-code-review, kind: methodology, invocation: auto }
|
|
19
|
+
- { id: receiving-code-review, path: skills/receiving-code-review, kind: methodology, invocation: auto }
|
|
20
|
+
- { id: dispatching-parallel-agents, path: skills/dispatching-parallel-agents, kind: methodology, invocation: auto }
|
|
21
|
+
- { id: finishing-a-development-branch, path: skills/finishing-a-development-branch, kind: methodology, invocation: auto }
|
|
22
|
+
- { id: writing-skills, path: skills/writing-skills, kind: methodology, invocation: auto }
|
|
23
|
+
# gstack skills (kind: role)
|
|
24
|
+
- { id: review, path: skills/review, kind: role, invocation: auto }
|
|
25
|
+
- { id: ship, path: skills/ship, kind: role, invocation: auto }
|
|
26
|
+
- { id: health, path: skills/health, kind: role, invocation: auto }
|
|
27
|
+
- { id: retro, path: skills/retro, kind: role, invocation: auto }
|
|
28
|
+
- { id: document-release, path: skills/document-release, kind: role, invocation: auto }
|
|
29
|
+
- { id: plan-ceo-review, path: skills/plan-ceo-review, kind: role, invocation: auto }
|
|
30
|
+
- { id: plan-eng-review, path: skills/plan-eng-review, kind: role, invocation: auto }
|
|
31
|
+
# authored workflow skill (kind: methodology)
|
|
32
|
+
- { id: workflow, path: skills/workflow, kind: methodology, invocation: auto }
|
|
33
|
+
# visual & design verification (kind: methodology)
|
|
34
|
+
- { id: unslop-ui, path: skills/unslop-ui, kind: methodology, invocation: auto }
|
|
35
|
+
- { id: visual-verification, path: skills/visual-verification, kind: methodology, invocation: auto }
|
|
36
|
+
# zero-to-100 bootstrap (kind: methodology)
|
|
37
|
+
- { id: authoring-prd, path: skills/authoring-prd, kind: methodology, invocation: auto }
|
|
38
|
+
# measured efficiency (kind: methodology)
|
|
39
|
+
- { id: performance, path: skills/performance, kind: methodology, invocation: auto }
|
|
40
|
+
# prose, domain, and codebase capabilities
|
|
41
|
+
- { id: no-ai-slop, path: skills/no-ai-slop, kind: methodology, invocation: auto }
|
|
42
|
+
- { id: domain-modeling, path: skills/domain-modeling, kind: methodology, invocation: auto }
|
|
43
|
+
- { id: codebase-design, path: skills/codebase-design, kind: methodology, invocation: auto }
|
|
44
|
+
- { id: resolving-merge-conflicts, path: skills/resolving-merge-conflicts, kind: methodology, invocation: auto }
|
|
45
|
+
- { id: writing-for-agents, path: skills/writing-for-agents, kind: methodology, invocation: auto }
|
|
46
|
+
policy:
|
|
47
|
+
- { path: policy/gates.md }
|
|
48
|
+
- { path: policy/roles.md }
|
|
49
|
+
loop:
|
|
50
|
+
spec: loop/loop-spec.md
|
|
51
|
+
prdSchema: loop/prd.schema.md
|
|
52
|
+
tools:
|
|
53
|
+
- { id: rtk, path: tools/rtk.md }
|
|
54
|
+
- { id: graphify, path: tools/graphify.md }
|
|
55
|
+
- { id: playwright-mcp, path: tools/playwright-mcp.md }
|
|
56
|
+
- { id: serena, path: tools/serena.md }
|
|
57
|
+
# optional companions (external installers; documented wiring only)
|
|
58
|
+
- { id: claude-mem, path: tools/claude-mem.md }
|
|
59
|
+
- { id: ui-ux-pro-max, path: tools/ui-ux-pro-max.md }
|
package/canon/policy/gates.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# Stop-the-Line Gates
|
|
2
|
-
|
|
3
|
-
These gates are enforced mechanically by the Loop (Baustein C) and expected of every agent run.
|
|
4
|
-
|
|
5
|
-
- **DoD gate:** Implementation may not begin until Definition of Done / Acceptance Criteria for the unit of work exist and are recorded (e.g., in the PRD story).
|
|
6
|
-
- **Green-tests gate:** A unit of work is not complete until its tests pass.
|
|
7
|
-
- **Clean-worktree gate:** No dispatch into a dirty or conflicted git worktree.
|
|
1
|
+
# Stop-the-Line Gates
|
|
2
|
+
|
|
3
|
+
These gates are enforced mechanically by the Loop (Baustein C) and expected of every agent run.
|
|
4
|
+
|
|
5
|
+
- **DoD gate:** Implementation may not begin until Definition of Done / Acceptance Criteria for the unit of work exist and are recorded (e.g., in the PRD story).
|
|
6
|
+
- **Green-tests gate:** A unit of work is not complete until its tests pass.
|
|
7
|
+
- **Clean-worktree gate:** No dispatch into a dirty or conflicted git worktree.
|
package/canon/policy/roles.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# Role Separation
|
|
2
|
-
|
|
3
|
-
The agent that performs a role must not also perform a conflicting one:
|
|
4
|
-
|
|
5
|
-
- **Implementer ≠ Reviewer** — implementation is not self-reviewed.
|
|
6
|
-
- **Implementer ≠ Merger** — the implementer does not merge their own change.
|
|
7
|
-
- **Implementer ≠ Security auditor** — security is not self-audited.
|
|
8
|
-
|
|
9
|
-
In the Loop, these map to separate iterations with fresh context.
|
|
1
|
+
# Role Separation
|
|
2
|
+
|
|
3
|
+
The agent that performs a role must not also perform a conflicting one:
|
|
4
|
+
|
|
5
|
+
- **Implementer ≠ Reviewer** — implementation is not self-reviewed.
|
|
6
|
+
- **Implementer ≠ Merger** — the implementer does not merge their own change.
|
|
7
|
+
- **Implementer ≠ Security auditor** — security is not self-audited.
|
|
8
|
+
|
|
9
|
+
In the Loop, these map to separate iterations with fresh context.
|
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
# Attribution
|
|
2
|
-
|
|
3
|
-
The skills in this directory are ported from two MIT-licensed open-source projects.
|
|
4
|
-
Their content is used under the terms of the MIT License reproduced below.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## gstack
|
|
9
|
-
|
|
10
|
-
**Source:** https://github.com/garrytan/gstack
|
|
11
|
-
|
|
12
|
-
**Skills ported:** review, ship, health, retro, document-release, plan-ceo-review,
|
|
13
|
-
plan-eng-review
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## superpowers
|
|
18
|
-
|
|
19
|
-
**Source:** https://github.com/obra/superpowers
|
|
20
|
-
|
|
21
|
-
**Skills ported:** tdd (from test-driven-development), brainstorming, writing-plans,
|
|
22
|
-
executing-plans, subagent-driven-development, systematic-debugging,
|
|
23
|
-
verification-before-completion, using-git-worktrees, requesting-code-review,
|
|
24
|
-
receiving-code-review, dispatching-parallel-agents, finishing-a-development-branch,
|
|
25
|
-
writing-skills
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## vibecoded-design-tells (research credit)
|
|
30
|
-
|
|
31
|
-
**Source:** https://github.com/JCarterJohnson/vibecoded-design-tells (MIT © 2026 Carter Johnson)
|
|
32
|
-
|
|
33
|
-
The `unslop-ui` rubric and the `yoke design-scan` tell set are **informed by** this data-ranked
|
|
34
|
-
study of AI-generated-UI tells. Yoke implements the idea **natively in TypeScript** and copies no
|
|
35
|
-
code or data — credited here in the spirit of the MIT license.
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
### gstack (cross-model review, idea credit)
|
|
40
|
-
|
|
41
|
-
The interactive `yoke review` command is inspired by gstack's `/codex` skill
|
|
42
|
-
(https://github.com/garrytan/gstack, MIT © Garry Tan) — an independent second-model
|
|
43
|
-
review with a pass/fail gate. Yoke's implementation is native and cross-agent; no code
|
|
44
|
-
or data was copied.
|
|
45
|
-
|
|
46
|
-
Likewise, the browser-QA-as-gate idea behind gstack's `/qa` skill is natively
|
|
47
|
-
re-implemented as `yoke flow-smoke` — cross-agent, with a proof-artifact contract
|
|
48
|
-
(screenshots always, video kept on failure, under `.yoke/proof/<story>/`); no code
|
|
49
|
-
was copied.
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## no-ai-slop
|
|
54
|
-
|
|
55
|
-
**Source:** https://github.com/petergyang/no-ai-slop
|
|
56
|
-
|
|
57
|
-
**Copyright:** Copyright (c) 2026 Peter Yang
|
|
58
|
-
|
|
59
|
-
**Skills adapted:** no-ai-slop and its evaluation checklist
|
|
60
|
-
|
|
61
|
-
Yoke preserves the upstream Edit and Detect modes, voice-preserving workflow, named-pattern
|
|
62
|
-
approach, and no-authorship-guess boundary. The adaptation adds Yoke's precise-domain-term rule,
|
|
63
|
-
portable package wording, and a shorter evaluation checklist.
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## mattpocock/skills
|
|
68
|
-
|
|
69
|
-
**Source:** https://github.com/mattpocock/skills
|
|
70
|
-
|
|
71
|
-
**Copyright:** Copyright (c) 2026 Matt Pocock
|
|
72
|
-
|
|
73
|
-
**Skills adapted:** domain-modeling, codebase-design, resolving-merge-conflicts,
|
|
74
|
-
writing-for-agents, and their supporting references
|
|
75
|
-
|
|
76
|
-
The adaptations use `.yoke/context/` as Yoke's durable context location, preserve Yoke's existing
|
|
77
|
-
authorization and verification rules, and remove provider-specific metadata from Canon source.
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## MIT License
|
|
82
|
-
|
|
83
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
84
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
85
|
-
in the Software without restriction, including without limitation the rights
|
|
86
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
87
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
88
|
-
furnished to do so, subject to the following conditions:
|
|
89
|
-
|
|
90
|
-
The above copyright notice and this permission notice shall be included in all
|
|
91
|
-
copies or substantial portions of the Software.
|
|
92
|
-
|
|
93
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
94
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
95
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
96
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
97
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
98
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
99
|
-
SOFTWARE.
|
|
1
|
+
# Attribution
|
|
2
|
+
|
|
3
|
+
The skills in this directory are ported from two MIT-licensed open-source projects.
|
|
4
|
+
Their content is used under the terms of the MIT License reproduced below.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## gstack
|
|
9
|
+
|
|
10
|
+
**Source:** https://github.com/garrytan/gstack
|
|
11
|
+
|
|
12
|
+
**Skills ported:** review, ship, health, retro, document-release, plan-ceo-review,
|
|
13
|
+
plan-eng-review
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## superpowers
|
|
18
|
+
|
|
19
|
+
**Source:** https://github.com/obra/superpowers
|
|
20
|
+
|
|
21
|
+
**Skills ported:** tdd (from test-driven-development), brainstorming, writing-plans,
|
|
22
|
+
executing-plans, subagent-driven-development, systematic-debugging,
|
|
23
|
+
verification-before-completion, using-git-worktrees, requesting-code-review,
|
|
24
|
+
receiving-code-review, dispatching-parallel-agents, finishing-a-development-branch,
|
|
25
|
+
writing-skills
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## vibecoded-design-tells (research credit)
|
|
30
|
+
|
|
31
|
+
**Source:** https://github.com/JCarterJohnson/vibecoded-design-tells (MIT © 2026 Carter Johnson)
|
|
32
|
+
|
|
33
|
+
The `unslop-ui` rubric and the `yoke design-scan` tell set are **informed by** this data-ranked
|
|
34
|
+
study of AI-generated-UI tells. Yoke implements the idea **natively in TypeScript** and copies no
|
|
35
|
+
code or data — credited here in the spirit of the MIT license.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
### gstack (cross-model review, idea credit)
|
|
40
|
+
|
|
41
|
+
The interactive `yoke review` command is inspired by gstack's `/codex` skill
|
|
42
|
+
(https://github.com/garrytan/gstack, MIT © Garry Tan) — an independent second-model
|
|
43
|
+
review with a pass/fail gate. Yoke's implementation is native and cross-agent; no code
|
|
44
|
+
or data was copied.
|
|
45
|
+
|
|
46
|
+
Likewise, the browser-QA-as-gate idea behind gstack's `/qa` skill is natively
|
|
47
|
+
re-implemented as `yoke flow-smoke` — cross-agent, with a proof-artifact contract
|
|
48
|
+
(screenshots always, video kept on failure, under `.yoke/proof/<story>/`); no code
|
|
49
|
+
was copied.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## no-ai-slop
|
|
54
|
+
|
|
55
|
+
**Source:** https://github.com/petergyang/no-ai-slop
|
|
56
|
+
|
|
57
|
+
**Copyright:** Copyright (c) 2026 Peter Yang
|
|
58
|
+
|
|
59
|
+
**Skills adapted:** no-ai-slop and its evaluation checklist
|
|
60
|
+
|
|
61
|
+
Yoke preserves the upstream Edit and Detect modes, voice-preserving workflow, named-pattern
|
|
62
|
+
approach, and no-authorship-guess boundary. The adaptation adds Yoke's precise-domain-term rule,
|
|
63
|
+
portable package wording, and a shorter evaluation checklist.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## mattpocock/skills
|
|
68
|
+
|
|
69
|
+
**Source:** https://github.com/mattpocock/skills
|
|
70
|
+
|
|
71
|
+
**Copyright:** Copyright (c) 2026 Matt Pocock
|
|
72
|
+
|
|
73
|
+
**Skills adapted:** domain-modeling, codebase-design, resolving-merge-conflicts,
|
|
74
|
+
writing-for-agents, and their supporting references
|
|
75
|
+
|
|
76
|
+
The adaptations use `.yoke/context/` as Yoke's durable context location, preserve Yoke's existing
|
|
77
|
+
authorization and verification rules, and remove provider-specific metadata from Canon source.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## MIT License
|
|
82
|
+
|
|
83
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
84
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
85
|
+
in the Software without restriction, including without limitation the rights
|
|
86
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
87
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
88
|
+
furnished to do so, subject to the following conditions:
|
|
89
|
+
|
|
90
|
+
The above copyright notice and this permission notice shall be included in all
|
|
91
|
+
copies or substantial portions of the Software.
|
|
92
|
+
|
|
93
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
94
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
95
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
96
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
97
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
98
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
99
|
+
SOFTWARE.
|