diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 1909c3e..368373a 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,20 +6,20 @@ }, "metadata": { "description": "Workflows for knowledge work that compounds over time", - "version": "1.0.0" + "version": "1.1.0" }, "plugins": [ { "name": "compound-knowledge", "description": "Knowledge compounds. Brainstorm, plan, review, execute, and save what you learn — so the next cycle starts smarter.", - "version": "1.0.0", + "version": "1.1.0", "author": { "name": "Austin Tedesco", "url": "https://every.to", "email": "austin@every.to" }, "homepage": "https://every.to/p/how-to-build-a-command-center-that-keeps-you-sane", - "tags": ["knowledge-work", "planning", "review", "compounding", "brainstorm"], + "tags": ["knowledge-work", "planning", "review", "compounding", "brainstorm", "lfg"], "source": "./plugins/compound-knowledge" } ] diff --git a/README.md b/README.md index e1b87a0..cb1473f 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,14 @@ Read the story: [How to Build a Command Center That Keeps You Sane](https://ever /kw:review --> Strategic alignment + data accuracy check /kw:work --> Execute the plan, produce deliverables /kw:compound --> Save learnings for next time + +/kw:lfg --> Hands-off: plan → review → work → compound (no stage check-ins) ``` Each cycle makes the next one faster. `/kw:plan` searches `docs/knowledge/` for past learnings saved by `/kw:compound`. Knowledge compounds. +After `/kw:brainstorm`, you get an explicit handoff — create a plan, or **Ship the rest** with `/kw:lfg` — so you don't lose track of which stage you're in. + ## Install Inside a [Claude Code](https://claude.ai/claude-code) session: @@ -40,6 +44,12 @@ When you're ready to commit to a direction: /kw:plan ``` +Or run the rest of the loop hands-off (plan → review → work → compound): + +``` +/kw:lfg +``` + After any meaningful session, save what you learned: ``` @@ -79,6 +89,10 @@ Execute a plan. Break it into tasks, group by dependency, run independent tasks Extract 1-3 learnings from a session. Checks for stale knowledge that the new learning contradicts. Saves to `docs/knowledge/` with searchable YAML frontmatter. +### LFG + +Hands-off runner for the rest of the loop — knowledge-work counterpart to Compound Engineering's `/lfg`. Runs plan → review → work → compound without asking which stage is next. + ## How It Works 1. You brainstorm and plan something @@ -111,7 +125,7 @@ delay revenue recognition. Net positive after 60 days. | Type | Count | Description | |------|-------|-------------| -| Skills | 6 | brainstorm, plan, confidence, review, work, compound | +| Skills | 7 | brainstorm, plan, confidence, review, work, compound, lfg | | Review Agents | 2 | strategic-alignment, data-accuracy | | Research Agents | 3 | past-work-researcher, knowledge-base-researcher, stale-knowledge-checker | diff --git a/plugins/compound-knowledge/.claude-plugin/plugin.json b/plugins/compound-knowledge/.claude-plugin/plugin.json index ce80a1a..1aa4dd0 100644 --- a/plugins/compound-knowledge/.claude-plugin/plugin.json +++ b/plugins/compound-knowledge/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "compound-knowledge", - "version": "1.0.0", - "description": "Knowledge compounds. Brainstorm, plan, review, execute, and save what you learn — so the next cycle starts smarter. 6 skills, 5 agents.", + "version": "1.1.0", + "description": "Knowledge compounds. Brainstorm, plan, review, execute, and save what you learn — so the next cycle starts smarter. 7 skills, 5 agents.", "author": { "name": "Austin Tedesco", "email": "austin@every.to", @@ -18,6 +18,7 @@ "brainstorm", "strategy", "campaign", - "brief" + "brief", + "lfg" ] } diff --git a/plugins/compound-knowledge/AGENTS.md b/plugins/compound-knowledge/AGENTS.md index f2d2d5d..720f9e5 100644 --- a/plugins/compound-knowledge/AGENTS.md +++ b/plugins/compound-knowledge/AGENTS.md @@ -6,13 +6,14 @@ compound-knowledge/ ├── AGENTS.md # Dev conventions (this file) ├── CLAUDE.md # Shim → @AGENTS.md -├── skills/ # 6 workflow skills +├── skills/ # 7 workflow skills │ ├── kw-brainstorm/SKILL.md │ ├── kw-plan/SKILL.md │ ├── kw-confidence/SKILL.md │ ├── kw-review/SKILL.md │ ├── kw-work/SKILL.md -│ └── kw-compound/SKILL.md +│ ├── kw-compound/SKILL.md +│ └── kw-lfg/SKILL.md # Hands-off loop (plan → review → work → compound) ├── agents/ # 5 task agents │ ├── review/ │ │ ├── strategic-alignment-reviewer.md @@ -38,6 +39,12 @@ compound-knowledge/ * Skills that accept arguments include an XML capture tag after frontmatter (e.g., ` #$ARGUMENTS `) +* End-of-stage handoffs must (1) name the completed stage, (2) present next options, and (3) immediately load the chosen next skill when applicable — never silently skip the handoff + +* Handoff menus: Claude Code `AskUserQuestion` max 4 options — if more are visible, use a numbered list in chat instead of overloading the tool + +* `/kw:lfg` is the only skill that chains stages without check-ins; it invokes children with `mode:pipeline`. Other skills stay single-stage unless the user picks a handoff option; under `mode:pipeline` they return results to the caller and do not self-chain + * Review agents live in `agents/review/` * Research agents live in `agents/research/` @@ -58,4 +65,6 @@ Every change must update: * **Local first.** `docs/knowledge/` is the primary knowledge store. External integrations (Notion, etc.) are optional and project-specific. -* **Progressive disclosure.** Start with the 6 workflows. Add skills and agents as patterns emerge. +* **Progressive disclosure.** Start with the core workflows. Add skills and agents as patterns emerge. `/kw:lfg` is the autonomous path for users who already trust the loop. + +* **Stage clarity.** Users should always know whether they are in brainstorm, plan, review, work, or compound. diff --git a/plugins/compound-knowledge/CHANGELOG.md b/plugins/compound-knowledge/CHANGELOG.md index 6907676..e382da5 100644 --- a/plugins/compound-knowledge/CHANGELOG.md +++ b/plugins/compound-knowledge/CHANGELOG.md @@ -4,6 +4,26 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## [1.1.0] - 2026-08-31 + +### Added + +* `/kw:lfg` — Hands-off loop runner (plan → review → work → compound), the knowledge-work counterpart to Compound Engineering's `/lfg` +* Stage orientation banners on all workflow skills (`**Stage: …**`) so mid-conversation it stays clear which phase you're in +* Mandatory end-of-stage handoff menus that recommend the next skill and, when chosen, immediately load it (instead of only suggesting the user type the command) +* Brainstorm / plan handoff option: **Ship the loop with `/kw:lfg`** + +### Changed + +* `/kw:brainstorm` Step 7 reframed as an explicit "Brainstorm complete" handoff (never skip), aligned with CE's post-brainstorm progression +* `/kw:plan`, `/kw:review`, `/kw:work`, and `/kw:compound` handoffs strengthened with stage-complete preambles and immediate skill load on selection +* Handoff menus follow CE's AskUserQuestion cap: ≤4 options use the tool; more than 4 fall back to a numbered list (never call AskUserQuestion over the limit) +* Pipeline Mode now keys off `mode:pipeline` (not `disable-model-invocation`); children return results to the caller instead of self-chaining +* `/kw:compound` allows pipeline auto-save so `/kw:lfg` does not contradict "approval required" +* LFG option labeled **Ship the rest**; existing `plans/*.md` paths skip re-planning; work end option renamed **Done for now** +* `/kw:confidence` captures and resumes the interrupted parent stage +* README / component counts updated for 7 skills + ## [1.0.0] - 2026-03-22 ### Added @@ -52,4 +72,4 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * Data accuracy reviewer agent -* README with install and usage instructions \ No newline at end of file +* README with install and usage instructions diff --git a/plugins/compound-knowledge/README.md b/plugins/compound-knowledge/README.md index 1cb7a29..037f744 100644 --- a/plugins/compound-knowledge/README.md +++ b/plugins/compound-knowledge/README.md @@ -11,10 +11,14 @@ Workflows for knowledge work that compounds over time. The knowledge work equiva /kw:review --> Strategic alignment + data accuracy check /kw:work --> Execute the plan, produce deliverables /kw:compound --> Save learnings for next time + +/kw:lfg --> Hands-off: plan → review → work → compound (no stage check-ins) ``` Each cycle makes the next one faster. `/kw:plan` searches `docs/knowledge/` for past learnings saved by `/kw:compound`. Knowledge compounds. +After `/kw:brainstorm`, the skill ends with an explicit handoff (create plan, or **Ship the rest** with `/kw:lfg`) so you always know which stage you're in. + ## Install Inside a [Claude Code](https://claude.ai/claude-code) session: @@ -38,6 +42,12 @@ When you're ready to commit to a direction: /kw:plan ``` +Or hand off the rest of the loop with no check-ins between stages: + +``` +/kw:lfg +``` + After any meaningful session, save what you learned: ``` @@ -77,6 +87,10 @@ Execute a plan. Break it into tasks, group by dependency, run independent tasks Extract 1-3 learnings from a session. Checks for stale knowledge that the new learning contradicts. Saves to `docs/knowledge/` with searchable YAML frontmatter. +### LFG + +Hands-off runner for the rest of the loop — the knowledge-work counterpart to Compound Engineering's `/lfg`. Invokes plan → review → work → compound without asking which stage is next. Enter from a brainstorm origin doc, a topic, or `plan:` to skip re-planning. Stops on unresolved P1 review findings. Ends at deliverables + compounded knowledge (no PR/CI shipping). + ## How It Works 1. You brainstorm and plan something @@ -109,7 +123,7 @@ delay revenue recognition. Net positive after 60 days. | Type | Count | Description | |------|-------|-------------| -| Skills | 6 | brainstorm, plan, confidence, review, work, compound | +| Skills | 7 | brainstorm, plan, confidence, review, work, compound, lfg | | Review Agents | 2 | strategic-alignment, data-accuracy | | Research Agents | 3 | past-work-researcher, knowledge-base-researcher, stale-knowledge-checker | diff --git a/plugins/compound-knowledge/skills/kw-brainstorm/SKILL.md b/plugins/compound-knowledge/skills/kw-brainstorm/SKILL.md index a1bab31..d95bed4 100644 --- a/plugins/compound-knowledge/skills/kw-brainstorm/SKILL.md +++ b/plugins/compound-knowledge/skills/kw-brainstorm/SKILL.md @@ -10,6 +10,15 @@ argument-hint: "[topic, brain dump, or meeting notes]" Get everything out of your head and into one place. Pull in references. Find the shape of the problem before you commit to a plan. +## Stage Orientation + +Stay oriented in the loop. Do not silently morph into planning or execution. + +* On the first response of this skill, open with: **Stage: Brainstorm** +* Keep responses clearly inside brainstorm until Step 7 completes +* Never start `/kw:plan`, `/kw:work`, or writing a full plan unless the user picks that next step (or `/kw:lfg`) +* When Step 7 runs, say **Brainstorm complete** before the menu — never skip the handoff + ## When to Use * After a meeting where next steps need to be figured out @@ -172,28 +181,53 @@ Based on everything — including the resolved questions from Step 5 — offer a This is a suggestion, not a decision. The user decides. -### Step 7: Offer next steps +### Step 7: Handoff — never skip -Use AskUserQuestion: +Brainstorm is done when Steps 1–6 are complete. **Do not keep chatting inside brainstorm without a handoff.** Present the next-step menu every time. -**Question:** "Brainstorm captured. What next?" +Preamble (always show first): -**Options:** +``` +**Brainstorm complete.** + +Origin doc: # after write; omit if not yet saved + +What would you like to do next? +``` -1. **Run `/kw:plan`** — Structure this into an actionable plan -2. **Dig deeper** — Research a specific theme or question further -3. **Push to Proof** — Share the brainstorm for team feedback -4. **Save and continue later** — Write to `plans/brainstorm-{descriptive-name}.md` -5. **Keep going** — Add more context or refine the themes +**Handoff rendering (required):** Claude Code `AskUserQuestion` supports at most **4** options. Count the visible options below for the current state: + +* If visible count ≤ 4 **and** AskUserQuestion is available → use AskUserQuestion +* If visible count > 4, or AskUserQuestion is unavailable / errors → render a numbered list in chat with "Pick a number or describe what you want." +* **Never** call AskUserQuestion with more than 4 options. **Never** silently skip this question. + +**Options** (renumber contiguous when any are hidden): + +1. **Create the plan** *(recommended)* — Hand off to `/kw:plan` and structure this into an actionable plan +2. **Ship the rest with `/kw:lfg`** — Hands-off from here: plan → review → work → compound (no stage check-ins). Shown only when Step 5 resolved load-bearing questions (or none were load-bearing). If load-bearing items remain open, hide this option and tell the user to resolve them or pick Create the plan. +3. **Dig deeper** — Research a specific theme or question further, then return to this menu (re-print **Stage: Brainstorm**) +4. **Save and continue later** — Write the origin doc and stop +5. **Keep going** — Add more context or refine themes, then return to this menu +6. **Push to Proof** — Share the brainstorm for team feedback, then re-present this menu -If "Save" or "Run /kw:plan" is selected: ALWAYS write the brainstorm to `plans/brainstorm-{descriptive-name}.md` first. This file becomes the origin document that `/kw:plan` will search for. Never skip the file write. +If option 1, 2, or 4 is selected: ALWAYS write the brainstorm to `plans/brainstorm-{descriptive-name}.md` first. This file becomes the origin document that `/kw:plan` and `/kw:lfg` use. Never skip the file write. +#### Handle the selected option + +* **Create the plan:** After writing the origin doc, immediately load the `kw:plan` skill in this session, passing the brainstorm path. Do not wait for the user to type `/kw:plan`. +* **Ship the rest with `/kw:lfg`:** After writing the origin doc, immediately load the `kw:lfg` skill with that path. Do not ask which stage to run next — LFG owns the rest of the loop. +* **Dig deeper / Keep going:** Continue brainstorm dialogue (keep **Stage: Brainstorm**), then return to this Step 7 menu when ready. Do not jump to planning or write plan-shaped outlines. +* **Save and continue later:** Write the origin doc, show the path, and end the turn with a one-line next step (`/kw:plan` or `/kw:lfg` when they return). +* **Push to Proof:** Share, then re-present this menu. + ## Important Rules * **Don't jump to solutions.** The point of brainstorming is to understand the problem space before committing to a path. Resist the urge to plan. +* **Handoff is mandatory.** Ending brainstorm without Step 7 leaves the user lost about whether they are still brainstorming or already planning. Always present the menu. + * **Reflect, don't rewrite.** When summarizing back, use the user's language. Don't sanitize their thinking into corporate speak. * **Surface tensions early, resolve the load-bearing ones late.** Steps 2-4 are for naming conflicts without picking winners. Step 5 is for resolving only the ones that would change the plan's shape. Don't collapse tensions prematurely. @@ -204,10 +238,10 @@ If "Save" or "Run /kw:plan" is selected: ALWAYS write the brainstorm to `plans/b ## Pipeline Mode -When invoked with `disable-model-invocation` context (e.g., from an orchestrator or automation): +When invoked with `mode:pipeline` in arguments (or equivalent pipeline/orchestrator context): -- Skip all AskUserQuestion prompts +- Skip all AskUserQuestion prompts and interactive waits - Use sensible defaults for all choices - Write output files without waiting for confirmation -- Proceed to the next suggested skill automatically -- Output structured results that the calling context can parse +- **Do not** load the next skill yourself — return structured results to the caller (e.g. `/kw:lfg`) which owns progression +- Output structured results the calling context can parse (origin path, themes, open questions) diff --git a/plugins/compound-knowledge/skills/kw-compound/SKILL.md b/plugins/compound-knowledge/skills/kw-compound/SKILL.md index 2b8df14..ccdfd54 100644 --- a/plugins/compound-knowledge/skills/kw-compound/SKILL.md +++ b/plugins/compound-knowledge/skills/kw-compound/SKILL.md @@ -7,6 +7,11 @@ description: Extract and save learnings from a completed knowledge work session. Close the loop. Extract what you learned and save it where future work will find it. +## Stage Orientation + +* On the first response of this skill, open with: **Stage: Compound** +* When learnings are saved (or none are worth saving), say **Loop closed** before the final menu + ## When to Use * After completing a plan, campaign, analysis, or strategy session @@ -58,7 +63,7 @@ Show each learning with its classification. User can: * Add learnings you missed -**Do not save anything without approval.** +**Do not save anything without approval** in interactive mode. **In `mode:pipeline`:** skip the approval prompt; auto-approve 1–3 high-signal learnings after duplicate + stale checks (still skip weak/noisy candidates). ### Step 3: Check for duplicates @@ -129,32 +134,45 @@ source: [brief description of what triggered this] [How this should change future work. Be concrete: "When doing X, always check Y first."] ``` -### Step 5: Confirm and offer next steps +### Step 5: Confirm and handoff ``` -## Compounded +**Loop closed.** **Saved:** -- docs/knowledge/{filename}.md +- docs/knowledge/{filename}.md # or "Nothing new to save" -**This learning will be surfaced by /kw:plan** when future work touches: +**These learnings will be surfaced by /kw:plan** when future work touches: - [list the tags that would trigger retrieval] ``` -Use AskUserQuestion: +**Handoff rendering (required):** Claude Code `AskUserQuestion` supports at most **4** options. + +* If visible count ≤ 4 **and** AskUserQuestion is available → use AskUserQuestion +* If visible count > 4, or AskUserQuestion is unavailable / errors → numbered list in chat with "Pick a number or describe what you want." +* **Never** call AskUserQuestion with more than 4 options. **Never** silently skip this question. **Question:** "Learnings saved. What next?" **Options:** -1. **Run `/kw:plan`** — Start a new planning cycle (the learnings will be found) -2. **Push to Proof** — Share the learnings for team review + +1. **Run `/kw:plan`** — Start a new planning cycle (learnings will be found) +2. **Run `/kw:brainstorm`** — Start a fresh brainstorm 3. **Done** — Session complete +4. **Push to Proof** — Share the learnings for team review, then re-present this menu + +#### Handle the selected option + +* **Run `/kw:plan`:** Immediately load `kw:plan`. +* **Run `/kw:brainstorm`:** Immediately load `kw:brainstorm`. +* **Done:** End with a one-line reminder that knowledge is in `docs/knowledge/`. +* **Push to Proof:** Share, then re-present this menu. ## Important Rules * **1-3 learnings max per session.** If you're saving 5 things, you're not filtering enough. -* **Approval required.** Never auto-save. The user decides what's worth remembering. +* **Approval required (interactive).** Never auto-save when a user is in the loop. **Pipeline exception:** when invoked with `mode:pipeline` (e.g. from `/kw:lfg`), auto-save after duplicate + stale checks per Pipeline Mode — quality filter still applies (1–3 max). * **Be specific.** "Use the right data source" is useless. "Revenue metrics come from [specific dashboard], not [other source] which overcounts by ~$X" is useful. @@ -166,10 +184,10 @@ Use AskUserQuestion: ## Pipeline Mode -When invoked with `disable-model-invocation` context (e.g., from an orchestrator or automation): +When invoked with `mode:pipeline` in arguments (or equivalent pipeline/orchestrator context): -- Skip all AskUserQuestion prompts +- Skip all AskUserQuestion prompts and interactive waits (including "wait for the user to react" / batch approvals) - Use sensible defaults for all choices - Write output files without waiting for confirmation -- Proceed to the next suggested skill automatically -- Output structured results that the calling context can parse +- **Do not** load the next skill yourself — return structured results to the caller (e.g. `/kw:lfg`) which owns progression +- Output structured results the calling context can parse diff --git a/plugins/compound-knowledge/skills/kw-confidence/SKILL.md b/plugins/compound-knowledge/skills/kw-confidence/SKILL.md index 40ff830..013fe09 100644 --- a/plugins/compound-knowledge/skills/kw-confidence/SKILL.md +++ b/plugins/compound-knowledge/skills/kw-confidence/SKILL.md @@ -7,6 +7,12 @@ description: Gut-check what you know and don't know before proceeding. Use at an Pause and honestly say what you're confident about and what you're not — like a colleague would. Then decide whether to proceed or dig deeper. +## Stage Orientation + +* On entry, capture the parent stage/skill/step if one is active, then open with: **Stage: Confidence** (interrupt — does not replace the parent stage). Example: "Interrupting **Stage: Work** (Batch 2)." +* After the check, on **Proceed**, must re-anchor with the captured parent banner (e.g. "Resuming **Stage: Work**") and continue that skill — do not restart it. +* Offering `/kw:plan` mid-interrupt leaves the parent stage; say so explicitly before loading it. + ## When to Use * Before committing to a plan or starting execution @@ -148,10 +154,10 @@ Then continue where you left off. The confidence check is a non-destructive inte ## Pipeline Mode -When invoked with `disable-model-invocation` context (e.g., from an orchestrator or automation): +When invoked with `mode:pipeline` in arguments (or equivalent pipeline/orchestrator context): -- Skip all AskUserQuestion prompts +- Skip all AskUserQuestion prompts and interactive waits (including "wait for the user to react" / batch approvals) - Use sensible defaults for all choices - Write output files without waiting for confirmation -- Proceed to the next suggested skill automatically -- Output structured results that the calling context can parse +- **Do not** load the next skill yourself — return structured results to the caller (e.g. `/kw:lfg`) which owns progression +- Output structured results the calling context can parse diff --git a/plugins/compound-knowledge/skills/kw-lfg/SKILL.md b/plugins/compound-knowledge/skills/kw-lfg/SKILL.md new file mode 100644 index 0000000..07abdb3 --- /dev/null +++ b/plugins/compound-knowledge/skills/kw-lfg/SKILL.md @@ -0,0 +1,134 @@ +--- +name: kw:lfg +description: "Run the full Compound Knowledge loop end-to-end, hands-off with no check-ins between stages. Use only when the user explicitly asks to ship the rest of the knowledge-work loop autonomously (plan → review → work → compound), or invokes /kw:lfg directly. Not for in-the-loop work where the user reviews each stage — use /kw:plan, /kw:review, /kw:work, or /kw:compound instead." +argument-hint: "[topic | brainstorm path | plan path | plan:]" +--- + + #$ARGUMENTS + +# LFG (Knowledge Work) + +Run the Compound Knowledge loop autonomously: **plan → review → work → compound**. No stage-handoff menus. Narrate progress; do not stop to ask which stage is next. + +This is the knowledge-work counterpart to Compound Engineering's `/lfg`. CE ships code to an open PR; CK ships knowledge deliverables and compounds learnings into `docs/knowledge/`. + +CRITICAL: Execute every step below **in order**. Do not jump ahead to `/kw:work` before a plan exists (unless a plan path was provided). Do not ask "what next?" between stages. + +Resolve every skill named below against the host's available-skills list and invoke that exact entry (hosts may namespace it, e.g. `compound-knowledge:kw-plan`). + +## When to Use + +* User says "just run the loop", "lfg", "ship the rest", or picks **Ship the rest with `/kw:lfg`** from a brainstorm/plan handoff +* Direction is clear enough that mid-loop steering is optional +* **Not** for exploratory brainstorming — finish `/kw:brainstorm` interactively first, then LFG + +## Inputs + +Parse `$ARGUMENTS` in this order: + +| Form | Meaning | +|------|---------| +| `plan:` | Skip Step 1. Use this plan; start at review. | +| Existing file under `plans/` matching `brainstorm-*.md` | Origin doc for planning. | +| Existing file under `plans/` that is **not** a brainstorm (e.g. `plans/strategy-….md`) | Treat as an existing plan — skip Step 1; start at review (same as `plan:`). | +| Free-text topic | Plan from the topic (and any prior conversation context). | +| Empty | Use the most recent brainstorm in `plans/`, else the most recent non-brainstorm plan, else the active conversation topic. If none exist, STOP and tell the user what to pass. | + +If a path looks like a plan file but does not exist, STOP and report — do not invent a plan silently. + +## Stage narration + +Before each step, one line: + +``` +**LFG → Stage: [Plan|Review|Work|Compound]** — [what this step should produce] +``` + +After each step, one line naming what it produced (plan path, P1 count, deliverable count, knowledge files). + +## Pipeline contract + +When invoking child skills, pass **`mode:pipeline`** in the invocation arguments (plus the plan/brainstorm path or topic). That carrier is the durable signal — do **not** rely on `disable-model-invocation` (that is skill frontmatter for blocking invocation, not a runtime mode). + +Child skills under `mode:pipeline` must: + +* Skip AskUserQuestion and interactive waits +* Write files without waiting +* **Return structured results only** — they must **not** load the next `/kw:*` skill themselves +* Still follow non-interactive Important Rules (cite sources, write execution logs, quality filters) + +LFG alone advances stages after each child returns. + +--- + +## Step 1: Plan + +**Skip** if a plan path was resolved from inputs (`plan:` or existing non-brainstorm `plans/*.md`). + +1. Invoke `kw:plan` with `mode:pipeline` on the brainstorm path or topic. +2. GATE: STOP if no plan file was written. Report why and halt. +3. **Record `plan_path`** for later steps. + +## Step 2: Review + +1. Invoke `kw:review` with `mode:pipeline` on `plan_path`. +2. If **P1** findings exist: + - Attempt a single auto-fix pass on the plan (and any attached brief) addressing each P1 + - Re-run `kw:review` once with `mode:pipeline` + - If P1s remain: GATE STOP. Report remaining P1s and `plan_path`. Do not execute a plan with unresolved critical findings unless the user later overrides interactively. +3. P2/P3 findings: note them in narration; continue (apply obvious safe P2 fixes when cheap; otherwise leave for compound/residuals). + +## Step 3: Work + +1. Invoke `kw:work` with `mode:pipeline` on `plan_path`. +2. Child skips per-batch approval prompts; still writes the **Execution Log** into the plan file after each batch. +3. GATE: STOP if zero deliverables were produced and work is blocked on missing access/info the agent cannot resolve. Report blockers and `plan_path`. +4. **Record deliverable paths** for the close-out. + +## Step 4: Compound + +1. Invoke `kw:compound` with `mode:pipeline` against this session (plan + execution log + deliverables). +2. Pipeline compound auto-approves **1–3** high-signal learnings after duplicate + stale checks; skips weak ones rather than saving noise. +3. Record saved `docs/knowledge/` paths (or explicitly "nothing worth saving"). + +## Step 5: DONE + +Output a self-contained recap: + +``` +DONE + +**LFG complete.** + +Plan: [plan_path] +Deliverables: +- [path or title] +Learnings: +- [docs/knowledge/... | none] + +Residuals / watch-outs: +- [remaining P2s, blockers, or assumptions] +``` + +Terminal artifacts are **deliverables + compounded knowledge** — not a git PR/CI green. If the project wants commits or a PR, the user (or Compound Engineering `/lfg`) owns that separately. + +--- + +## Important Rules + +* **Hands-off between stages.** The whole point is not asking "plan or work next?" after brainstorm. Interactive steering belongs in the individual `/kw:*` skills. +* **Plan before work.** Never invent an execution path without a written plan file (unless a plan path was provided). +* **P1 is a hard gate.** Wrong strategy or wrong data must not silently ship. +* **Compound closes the loop.** Skipping Step 4 means the next cycle cannot benefit — only skip when Step 3 produced nothing meaningful. +* **Brainstorm stays interactive.** LFG does not replace `/kw:brainstorm`; it consumes its output (or a topic) and runs the rest. +* **LFG owns the chain.** Children in `mode:pipeline` return to LFG; they do not self-chain. + +## Relationship to Compound Engineering `/lfg` + +| | CE `/lfg` | CK `/kw:lfg` | +|--|-----------|--------------| +| Domain | Software | Knowledge work | +| Core pipeline | plan → work → simplify → code-review → PR → CI | plan → review → work → compound | +| Terminal artifact | Open PR (often CI-green) | Deliverables + `docs/knowledge/` entries | +| Typical entry | Feature description or requirements plan | Brainstorm origin doc, topic, or existing plan | +| Runtime carrier | `mode:pipeline` / return-to-caller | `mode:pipeline` on each child invoke | diff --git a/plugins/compound-knowledge/skills/kw-plan/SKILL.md b/plugins/compound-knowledge/skills/kw-plan/SKILL.md index dbc96c0..c946e82 100644 --- a/plugins/compound-knowledge/skills/kw-plan/SKILL.md +++ b/plugins/compound-knowledge/skills/kw-plan/SKILL.md @@ -10,6 +10,13 @@ argument-hint: "[what to plan]" Research what you already know, then structure a plan grounded in data and past learnings. Lead with the answer. +## Stage Orientation + +* On the first response of this skill, open with: **Stage: Plan** +* Stay in planning until Step 6 — do not start executing deliverables here +* When the plan file is written, say **Plan complete** before the handoff menu +* If the user wants hands-off execution of the rest of the loop, offer `/kw:lfg` rather than silently chaining + ## When to Use * After brainstorming, when you're ready to commit to a direction @@ -94,7 +101,7 @@ Before writing anything, present a context brief: **No prior context found** (if searches returned nothing) ``` -Wait for the user to react. They may refine direction, add context, or say "looks good, go." +Wait for the user to react. They may refine direction, add context, or say "looks good, go." **Skip this wait entirely in `mode:pipeline`** — present the brief in narration and continue to Step 4. ### Step 4: Structure the plan @@ -294,19 +301,39 @@ Use the template that matches the work type from Step 1. Each type has a differe * Always write the file BEFORE presenting options. -### Step 6: Offer next steps +### Step 6: Handoff — never skip -Use AskUserQuestion: +``` +**Plan complete.** -**Question:** "Plan written to `plans/{filename}`. What next?" +Plan: + +What would you like to do next? +``` + +**Handoff rendering (required):** Claude Code `AskUserQuestion` supports at most **4** options. + +* If visible count ≤ 4 **and** AskUserQuestion is available → use AskUserQuestion +* If visible count > 4, or AskUserQuestion is unavailable / errors → numbered list in chat with "Pick a number or describe what you want." +* **Never** call AskUserQuestion with more than 4 options. **Never** silently skip this question. **Options:** -1. **Run `/kw:review`** — Check strategic alignment and data accuracy +1. **Run `/kw:review`** *(recommended)* — Check strategic alignment and data accuracy before executing 2. **Start `/kw:work`** — Begin executing this plan -3. **Push to Proof** — Share the plan for collaborative review -4. **Refine** — Adjust specific sections -5. **Open in editor** — View the full plan +3. **Ship the rest with `/kw:lfg`** — Hands-off from here: review → work → compound (skips re-planning; uses this plan) +4. **Refine** — Adjust specific sections, then return to this menu +5. **Push to Proof** — Share the plan for collaborative review, then re-present this menu +6. **Open in editor** — Show the plan path for local viewing, then re-present this menu + +#### Handle the selected option + +* **Run `/kw:review`:** Immediately load `kw:review` with the plan path. +* **Start `/kw:work`:** Immediately load `kw:work` with the plan path. +* **Ship the rest with `/kw:lfg`:** Immediately load `kw:lfg` with `plan:` (or the plan file path) so it starts at review — does not re-run plan. +* **Refine:** Edit the plan, then re-present this menu. +* **Push to Proof:** Share, then re-present this menu. +* **Open in editor:** Display the plan path (open via host primitive if available), then re-present this menu. ## Important Rules @@ -322,10 +349,10 @@ Use AskUserQuestion: ## Pipeline Mode -When invoked with `disable-model-invocation` context (e.g., from an orchestrator or automation): +When invoked with `mode:pipeline` in arguments (or equivalent pipeline/orchestrator context): -- Skip all AskUserQuestion prompts +- Skip all AskUserQuestion prompts and interactive waits (including "wait for the user to react" / batch approvals) - Use sensible defaults for all choices - Write output files without waiting for confirmation -- Proceed to the next suggested skill automatically -- Output structured results that the calling context can parse +- **Do not** load the next skill yourself — return structured results to the caller (e.g. `/kw:lfg`) which owns progression +- Output structured results the calling context can parse diff --git a/plugins/compound-knowledge/skills/kw-review/SKILL.md b/plugins/compound-knowledge/skills/kw-review/SKILL.md index 50a164c..85f0944 100644 --- a/plugins/compound-knowledge/skills/kw-review/SKILL.md +++ b/plugins/compound-knowledge/skills/kw-review/SKILL.md @@ -10,6 +10,12 @@ argument-hint: "[file path or content to review]" Two automated reviewers check your work for the errors that damage credibility: wrong strategy and wrong data. +## Stage Orientation + +* On the first response of this skill, open with: **Stage: Review** +* Stay in review until findings are presented and the handoff runs +* When done, say **Review complete** before the next-step menu + ## When to Use * After `/kw:plan` to validate a plan before executing @@ -95,19 +101,38 @@ Combine findings from both reviewers. Group all findings by severity: | **P2 Important** | Missing source citation, stale data, unclear success metric | "Conversion rate has no comparison basis" | | **P3 Nice-to-have** | Minor framing, additional context, formatting | "Could specify the time period for this metric" | -### Step 5: Offer next steps +### Step 5: Handoff — never skip -Use AskUserQuestion: +``` +**Review complete.** -**Question:** "Review complete. \[N] findings (\[P1 count] critical, \[P2 count] important). What next?" +Findings: [N] ([P1 count] critical, [P2 count] important, [P3 count] nice-to-have) + +What would you like to do next? +``` + +**Handoff rendering (required):** Claude Code `AskUserQuestion` supports at most **4** options. + +* If visible count ≤ 4 **and** AskUserQuestion is available → use AskUserQuestion +* If visible count > 4, or AskUserQuestion is unavailable / errors → numbered list in chat with "Pick a number or describe what you want." +* **Never** call AskUserQuestion with more than 4 options. **Never** silently skip this question. **Options:** 1. **Fix P1/P2 issues now** — Address findings inline, then re-review -2. **Run `/kw:work`** — Plan passes. Start executing it +2. **Run `/kw:work`** *(recommended when no P1s)* — Plan passes. Start executing it 3. **Run `/kw:compound`** — Save review insights as learnings -4. **Push to Proof** — Share review findings for discussion -5. **Ship as-is** — Acknowledge findings and proceed without fixing +4. **Ship as-is** — Acknowledge findings and load `/kw:work` without fixing +5. **Push to Proof** — Share review findings for discussion, then re-present this menu + +#### Handle the selected option + +* **Fix P1/P2:** Apply fixes to the artifact, then re-run review (return to Step 2). +* **Run `/kw:work`:** Immediately load `kw:work` with the reviewed plan/artifact path. +* **Run `/kw:compound`:** Immediately load `kw:compound`. +* **Ship as-is:** Acknowledge remaining findings in one line, then immediately load `kw:work` with the plan path (same as work; note any remaining P1 override). +* **Push to Proof:** Share, then re-present this menu. +* If P1 findings remain, recommend fixing before work — still allow the user to override. ## Important Rules @@ -123,10 +148,10 @@ Use AskUserQuestion: ## Pipeline Mode -When invoked with `disable-model-invocation` context (e.g., from an orchestrator or automation): +When invoked with `mode:pipeline` in arguments (or equivalent pipeline/orchestrator context): -- Skip all AskUserQuestion prompts +- Skip all AskUserQuestion prompts and interactive waits (including "wait for the user to react" / batch approvals) - Use sensible defaults for all choices - Write output files without waiting for confirmation -- Proceed to the next suggested skill automatically -- Output structured results that the calling context can parse +- **Do not** load the next skill yourself — return structured results to the caller (e.g. `/kw:lfg`) which owns progression +- Output structured results the calling context can parse diff --git a/plugins/compound-knowledge/skills/kw-work/SKILL.md b/plugins/compound-knowledge/skills/kw-work/SKILL.md index 6ea231e..48b9e69 100644 --- a/plugins/compound-knowledge/skills/kw-work/SKILL.md +++ b/plugins/compound-knowledge/skills/kw-work/SKILL.md @@ -10,6 +10,12 @@ argument-hint: "[plan file to execute]" You have a plan. Now execute it. Break it into tasks, do them, track what happened. +## Stage Orientation + +* On the first response of this skill, open with: **Stage: Work** +* This is execution — produce deliverables, do not rewrite the whole plan +* When batches finish, say **Execution complete** before the handoff menu + ## When to Use * After `/kw:plan` or `/kw:review` — the plan is ready, time to execute @@ -43,6 +49,8 @@ Present the task list to the user: > "I see \[N] deliverables in this plan. Here's how I'd break them down. Want to adjust before I start?" +**In `mode:pipeline`:** present the task list in narration and continue — do not wait for adjustment. + **Task types in knowledge work:** | Deliverable | How to execute | @@ -95,7 +103,7 @@ Present the execution plan to the user: 1. **Announce the batch** — "Starting Batch 1: \[task names]" 2. **Launch independent tasks in parallel** — Use Task agents for tasks that don't depend on each other. For single tasks or tasks requiring heavy interaction, execute inline. 3. **Show all outputs** — Present results from the batch together -4. **Get feedback** — "Good? Or adjust before I move to Batch 2?" +4. **Get feedback** — "Good? Or adjust before I move to Batch 2?" (**Skip in `mode:pipeline`** — log results and continue to the next batch.) 5. **Mark complete** — Move to next batch **When to parallelize within a batch:** @@ -171,19 +179,38 @@ When all tasks are complete (or blocked), summarize: - [anything learned during execution worth noting] ``` -### Step 8: Offer next steps +### Step 8: Handoff — never skip + +``` +**Execution complete.** + +Plan: [plan name] +Deliverables: [N] produced + +What would you like to do next? +``` -Use AskUserQuestion: +**Handoff rendering (required):** Claude Code `AskUserQuestion` supports at most **4** options. -**Question:** "Execution complete. \[N] deliverables produced. What next?" +* If visible count ≤ 4 **and** AskUserQuestion is available → use AskUserQuestion +* If visible count > 4, or AskUserQuestion is unavailable / errors → numbered list in chat with "Pick a number or describe what you want." +* **Never** call AskUserQuestion with more than 4 options. **Never** silently skip this question. **Options:** -1. **Run `/kw:review`** — Quality check the outputs -2. **Run `/kw:compound`** — Save learnings from this session -3. **Push to Proof** — Share execution summary for review -4. **Continue working** — Pick up blocked tasks or add new ones -5. **Ship it** — Done, move on +1. **Run `/kw:compound`** *(recommended)* — Save learnings from this session so the next cycle starts smarter +2. **Run `/kw:review`** — Quality check the outputs +3. **Continue working** — Pick up blocked tasks or add new ones +4. **Done for now** — End without compounding (not recommended after meaningful work) +5. **Push to Proof** — Share execution summary for review, then re-present this menu + +#### Handle the selected option + +* **Run `/kw:compound`:** Immediately load `kw:compound`, pointing at this session's plan + execution log. +* **Run `/kw:review`:** Immediately load `kw:review` on the primary deliverable or plan. +* **Continue working:** Return to Step 4 for remaining/blocked work, then return to this menu. +* **Done for now:** End the turn; note that `/kw:compound` can still run later on this plan's execution log. +* **Push to Proof:** Share, then re-present this menu. ## Important Rules @@ -199,10 +226,10 @@ Use AskUserQuestion: ## Pipeline Mode -When invoked with `disable-model-invocation` context (e.g., from an orchestrator or automation): +When invoked with `mode:pipeline` in arguments (or equivalent pipeline/orchestrator context): -- Skip all AskUserQuestion prompts +- Skip all AskUserQuestion prompts and interactive waits (including "wait for the user to react" / batch approvals) - Use sensible defaults for all choices - Write output files without waiting for confirmation -- Proceed to the next suggested skill automatically -- Output structured results that the calling context can parse +- **Do not** load the next skill yourself — return structured results to the caller (e.g. `/kw:lfg`) which owns progression +- Output structured results the calling context can parse