From 5b67c1d0e6ca2a07a9913d5aff76be5b7ed51547 Mon Sep 17 00:00:00 2001 From: vitya Date: Wed, 12 Aug 2026 17:44:42 +0300 Subject: [PATCH] =?UTF-8?q?feat(loop-me):=20v0.1.0=20=E2=80=94=20workflow-?= =?UTF-8?q?spec=20design=20gate=20adapted=20from=20mattpocock/skills=20@?= =?UTF-8?q?=2084fdeffd=20(done-when-implementer-asks-no-questions=20+=20in?= =?UTF-8?q?dependent=20check)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + README.ru.md | 1 + dist/loop-me.skill | Bin 0 -> 3010 bytes skills/loop-me/SKILL.md | 133 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 135 insertions(+) create mode 100644 dist/loop-me.skill create mode 100644 skills/loop-me/SKILL.md diff --git a/README.md b/README.md index 7a68164..6d82e19 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,7 @@ an explicit `adapted-from` marker in its frontmatter. | `grilling` | `adapted-from: mattpocock/skills @ 84fdeffd` (MIT) — family collapsed to one skill (pi hides `disable-model-invocation` wrappers) | | `brainstorming` | `adapted-from: obra/superpowers @ 6.2.0` (MIT) — divergent phase, visual-companion dropped | | `diagnosing-bugs` | `adapted-from: mattpocock/skills @ 84fdeffd` (MIT) + superpowers 6.2.0 concepts (Iron Law, red flags) | +| `loop-me` | `adapted-from: mattpocock/skills @ 84fdeffd` (MIT) — workflow-spec design gate | | `writing-skills` | `adapted-from: obra/superpowers @ 6.2.0` (MIT) — TDD-for-skills core + ideya 8 self-skill-authoring | | all other `skills/*` | `author: ours` | diff --git a/README.ru.md b/README.ru.md index 943bf6d..ee78bae 100644 --- a/README.ru.md +++ b/README.ru.md @@ -86,6 +86,7 @@ bash scripts/build.sh caveman # один | `grilling` | `adapted-from: mattpocock/skills @ 84fdeffd` (MIT) — семейство схлопнуто в один скил (pi прячет `disable-model-invocation` обёртки) | | `brainstorming` | `adapted-from: obra/superpowers @ 6.2.0` (MIT) — расходящаяся фаза, visual-companion выброшен | | `diagnosing-bugs` | `adapted-from: mattpocock/skills @ 84fdeffd` (MIT) + superpowers 6.2.0 (Iron Law, red flags) | +| `loop-me` | `adapted-from: mattpocock/skills @ 84fdeffd` (MIT) — дизайн-гейт workflow-спец | | `writing-skills` | `adapted-from: obra/superpowers @ 6.2.0` (MIT) — TDD-for-skills ядро + идея 8 self-skill-authoring | | остальные `skills/*` | `author: ours` | diff --git a/dist/loop-me.skill b/dist/loop-me.skill new file mode 100644 index 0000000000000000000000000000000000000000..0b964aba25bc3d826aec85646e94a8257e4672b6 GIT binary patch literal 3010 zcmV;z3qABuO9KQH0000804I$MU3H@1(?AOV0D%_(01yBG0Bmn>a4l_RFH=iNOiV6q zWQADWjw44EzVD|f%}T^}Y|ri{#x6D+@aYkCCy%b z?ar$&&0e9~-@koV4c@+ZG|aBZd1IS1b$fbedOIt~=gzc2UcHei^?_wvaIY% z`Id68O6!!PymQVpbJfBPa*gLvVWA4DXs!c)`S!`5l~z9JKxJ3K+}y!U{^H5=x@xts zo|J8>wX$7kyP%A}w%SxZa%Mg!rv{xTH#~!#Z~n4gVXEhsmVhe2)|U|~*8PQ&vZ-c)It!mAe*vWE31=VV0!UD-x8pb?qR-}H_k!KK2 zvk5qm-BLe`amca+$kFI{tk(Jg~6*>MDDS}^(g;l3oM4w%Kzl+QCkuQwTO^ctT1`g(%P$5uk!r87Vlr8&> zB0C6x3Z^D}&#(tuBVGj+SjMlg3ihJ&1)kv-;nz@U3@&&cFM4HjJ?kp%)|gPJxz&}L z5#lq=vPby7BOK^eSU9v=5a586uaD`5AXD&Sl4Ak@81|2S<$0q~#&C z?H~!YHjT&Pw{9t3Ux17d_$<2z%lwEqW4^wbu;=9Kj9(al2Pxw$$Wyi=TBhHswyuE< zNl*llqn1DsgeVW@%7pb)y=U^!$x=GPKzs4bXAD9tD-W1?MH+ItKu}so1!n0PEE+^6 z8H+5?ObbR42L(aM7ouN`ty(Y1CxBnm#i{zaC)ptfgcHgp{B?{vNkGZ zG%B%C3+KC?Ct~=Bni~|HEVZwu5 z_F# zWfC_n;ed{HuGBe6WEp+dMJ0-8{h((O$CK3)rXiN|4q7ngs0j^OZlrDrlMbSX<*HaB zO^^UKOfy6j)AD5n0iGgDZ)0tMvuBbIu48QKYBV}KG}jP8f*Y&uU5xQ3T9LR!|MA7M zLmlwhH7qd4BIE&LP8^6z%*P29PX#pzos<z#pDJ9%0v zV^c$`*&CQmKsU{mt*$syY)5uIh8q#StT%CcwqX=kz|mN$XcTk-loV!a8NAWYH=UvK zFys2rKaBMVyg!p7gw2fAt~Zzf@dcBnuDQBkK5UDH6}AImDmsV{99XO)B3W9SCGfUt zI03u^js768dQep!a6-zpUU71y`I}0qkQDNwTpVWXHUpm>E}Skg=wVAF)e|~x1d7~X zkb@FkQ6%w$8205dK(1uJtRU(Nz6}nU`80Y_K{1 zztu9^SIhfIsiQ#ES_+vI_Q+WSrad7`oHc zD5+Bz76{{2?4pJdCtT=}^>3g3DfRwnLW6@R(SZj#X!Sk7zH?|W`yG<-1H(PWbB~I? zcbwiwJ09dhiGjn!^{Mi3fMpb*K_6CN0p5yZo^rp7{H_(Bvxe7o=XlY9DY@*(!*C}? zz1BqRO9D8ef?KQ$ky>&Kv!rPJ$B@v@vE&s8drE!%+^Utc+z26z9N1`-?Lk#^R|Q16 zDXPeC>?MGZ2V{NXmB1tPpu=#Z4TZss9=orNrA58EqIV{=~D~0htJW=-$(7p|aWv30F&1%xk zK{ptKm5Cg2fZ#t0j<}MVZyq-0{l2hMpQz+>sn4vj57|&H()pe zQNN@-Ob!l3@3S1;8H$oQnsd*!8>S!%>TRwSC3RpT#@5L~NfR_bYbk#1T&z#U>oKmBl zah!*#59+A`-w&l$34GG|>$+M_vzKrb6|~WwlBrc<$j6%$#`M{9P-{7Opl-Q$ z(KA!wES_cWaTzR7p6$FNxbzUYoIQw19T}zfem70u%rg0000804I$MU3H@1(?AOV0D%_(01yBG z0000000000000000001NZ*OodZDlW0OG!*jE^TB`O9ci1000010096#0001P3jhEB E0L3S~XaE2J literal 0 HcmV?d00001 diff --git a/skills/loop-me/SKILL.md b/skills/loop-me/SKILL.md new file mode 100644 index 0000000..347c95e --- /dev/null +++ b/skills/loop-me/SKILL.md @@ -0,0 +1,133 @@ +--- +name: loop-me +adapted-from: mattpocock/skills @ 84fdeffd12f2ee307994d1eb6feb48173b6e0502 (MIT) +version: 0.1.0 +description: > + Design workflow specs for recurring patterns worth delegating — a stateful + grilling session whose only output is workflow specs. Trigger (user): + «спроектируй workflow», «опиши мои повторяющиеся процессы», «что у меня + можно делегировать», «специфицируй процесс», "design a workflow", "loop me", + "what can I delegate". Differs from grilling: grilling sharpens an existing + plan/decision (convergence); loop-me finds + fully specifies recurring + processes (workflow specs) until an implementer could build them without a + single question. +--- + +# Loop me + +Design **workflow specs** for the recurring patterns in the user's life that +are worth **delegating** — to an agent, a poller, a script, another person. +Run the grilling discipline (relentless, a round of questions at a time, a +recommended answer attached to each) aimed at the vocabulary and goal below. + +The session is done when every workflow spec meets the **definition of done** +— nothing is done while a question remains. + +## The loop lens + +A **loop** is a recurring pattern in the user's life: their career, their +week, their morning, a single repeated activity. Picturing a life as loops +within loops reveals how predictable its activities really are — which is what +makes them worth delegating. Use the lens to find loops worth specifying, and +propose ones the user hasn't noticed. + +A **workflow** is the spec of one loop, made real. You run a workflow on a +loop — the loop is its running instantiation. + +**Ask about the user's world first** (tools, channels, terminology, frequency, +pain points) before specifying anything. Sharpened fuzzy terms into canonical +ones as they surface, and record them. + +## Vocabulary + +A shared language, reached for only when a workflow calls for it — never a +checklist. **Mandate nothing structural**: a workflow needs no AI, no +checkpoint, and no schedule unless the grilling shows it does. + +- **Trigger** — what fires each run: an **event** (a new email, a new issue) + or a **schedule** (every morning). Event-triggering is usually the more + efficient. +- **Checkpoint** — a human-in-the-loop point where the user is asked to verify + or decide. Some workflows have none and run autonomously; some use no AI at + all. +- **Push right** — defer the checkpoint as far as it will go. Do maximal work + before involving the human, so they are asked once, late, with everything + prepared. +- **Brief** — what a checkpoint presents: a tight, decision-ready summary — + what was produced, why, and a link down to the asset itself — never the raw + output. The user reads a brief, not a draft. Speed of review is imperative. + +## Definition of done + +A workflow spec is done when **an implementer agent could build it without +asking a single question**. Grill until then; nothing is done while a question +remains. + +Concretely, a spec must answer, explicitly: + +- **Trigger** — what starts a run (event / schedule / manual), with the exact + signal. +- **Steps** — ordered, unambiguous; each step has an owner (agent / script / + human / poller) and an input→output contract. +- **Data & sources** — where inputs come from, where outputs go, credentials + needed (redacted, referenced by name). +- **Checkpoints** — where (if anywhere) a human is asked, and what the brief + looks like. +- **Failure modes** — what can go wrong per step, and the default handling + (retry / park / notify / abort). +- **Verification** — how the implementer (or the poller) proves a run + succeeded — a verifier command or an observable completion signal. + +If you cannot write any of these without asking, ask. If the user cannot +answer, the workflow is not ready to specify — narrow it. + +### Independent check (before done) + +Before declaring a spec done, verify it with a fresh-context non-implementer +agent (review-kit method): give it the spec alone and ask "what would you need +to ask before building this?" Any question it raises means the spec is not +done — resolve it in the spec, don't answer the agent. + +## Spec location + +Where workflow specs live (per project-discipline Rule 1): + +- regular project → `.wiki/concepts/-workflow.md` +- workshop zone → `.brainstorm/.md` (running record), then the + promotion pipeline takes over +- user preference overrides the default + +The session's raw notes on the user's world (tools, channels, terminology) +go in the same running record / a `NOTES.md`-style section — kept thin and +canonical, not a dump. + +## Implementation handoff + +Once a spec is done (definition of done met + independent check passed): + +1. Break it into tasks on the project's `.tasks/` board (task-format; a + poller-driven workflow gets `**Weight:**` + `**Notify:**`). +2. Add a verifier to each implementation task (ralph-loop-execution style) — + the spec's Verification line is the verifier command. +3. Promote the spec to the wiki (workshop: promotion pipeline; project: + `.wiki/concepts/`). + +Do NOT delegate a workflow whose spec is not done — the implementer would +have to ask questions the grilling should have resolved. + +## Cross-agent applicability + +Pure dialogue + spec methodology — no harness-specific tool references. The +"implementer agent" / "fresh-context check" is any agent runtime (pi, Claude, +codex, hermes); on a runtime without sub-agent spawning, do the fresh-context +check by re-reading the spec against the definition-of-done list with fresh +eyes after a break. + +## Out of scope + +- Does NOT stress-test a finished plan (that's grilling). +- Does NOT run the divergent brainstorm (that's brainstorming). +- Does NOT define the task-board format (see task-format) or the verifier + loop mechanics (see ralph-loop-execution). +- Does NOT decide WHAT is worth delegating — the lens proposes, the user + decides.