From 02854e385f74ab96d6eef6702ef55ffe5b503941 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 19 Oct 2026 20:49:02 +0700 Subject: [PATCH] skills: request, do not ask -- the proactivity rule in CLAUDE.md and a Requests-out step in the analog loop (Closes #11054) Owner rule 2026-10-19: do not ask, request; everything not forbidden is allowed. CLAUDE.md gets the test (forbidden? blocked? default), the request shape and the closed forbidden list; the analog loop tick ends with a Requests out list. The pending toolchain-table lessons of the analog skill (t27b inner loop, frontier --only, the vacuity gate, the seal as cache key) are rebased onto master's version. Co-Authored-By: Claude Sonnet 5.5 --- .claude/skills/analog-emulation/SKILL.md | 3 ++- CLAUDE.md | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.claude/skills/analog-emulation/SKILL.md b/.claude/skills/analog-emulation/SKILL.md index 1e4201c02b..125aeebb51 100644 --- a/.claude/skills/analog-emulation/SKILL.md +++ b/.claude/skills/analog-emulation/SKILL.md @@ -78,7 +78,8 @@ A `/loop` tick on this epic follows this order, so a new tick never undoes or du 3. **Everything on Sonnet 5.5, Opus only on evidence** (`specs/claw/model_route.t27`, owner 2026-10-19, #10921: the orchestrator included; Opus after 2 failed attempts on one task or on the owner's word): 3 to 5 subagents on the 8 GB Mac while `memory_pressure` stays above 25 % free; each lane in its own worktree and branch; the orchestrator reads every diff before auto-merge is enabled. Fast review: check out the PR head, `t27c frontier --only --list` and `t27c seal --verify`; re-run `test-report` only when frontier says rebuild or the diff looks wrong; regenerate any `gen/` file the PR touches and compare it byte for byte; run `python3 -I tools/dupe_scan.py`. To change a PR that has auto-merge on, disable auto-merge first, push, then enable it again (a second push races the merge). 4. **Merge only green.** Auto-merge after the required checks pass. A red is inherited only if it is a subset of master's failures; `claw-sarif` failing on "permissions requested are not granted to this installation" is the known App-permission red (owner steps in `docs/claw/README.md`). 5. **Write state.** Edit the ledger row, tick the epic's Progress table, republish the dashboard, and add a learning to this skill when a trap cost more than one try. Renew the keep-awake hold at the start of each tick (it lapses after about 5 idle minutes). Then run `/self-cleanup` (`.claude/skills/self-cleanup/SKILL.md`): remove the worktrees and Zig caches of lanes whose PRs merged, and put the freed space in the row. -6. **Reports** to the partner: the owner gave standing permission on 2026-10-18 to message the Symbiotic EDA contact directly about anything the work needs and at every milestone. Read the chat for answers first in every tick. +6. **Requests out, never questions.** Owner, 2026-10-19: "do not ask, request; everything not forbidden is allowed". A blocked item is not parked as "waiting for the owner": name who holds what it needs, send that party a request with the options, a default and a time, and continue on the default. End every tick with `Requests out:` -- who, what, sent when, default, due. An unanswered request is chased once, then the default is taken and written in the ledger row. The owner is asked only for a password, a sign-in, a payment, a legal commitment or a choice between two businesses (rule: `CLAUDE.md` "Proactivity: request, do not ask"). +7. **Reports** to the partner: the owner gave standing permission on 2026-10-18 to message the Symbiotic EDA contact directly about anything the work needs and at every milestone. Read the chat for answers first in every tick. ## Claim guard diff --git a/CLAUDE.md b/CLAUDE.md index e5a27ce7c0..2ca720f08e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -111,6 +111,20 @@ This triggers automatic branch creation for the next phase. --- +## Proactivity: request, do not ask + +Owner rule, 2026-10-19: do not ask, request; everything not forbidden is allowed. + +1. **Forbidden?** If the action is not on the list below, do it and report in one line afterwards. +2. **Blocked?** A missing fact, consent, number, credential or time slot is not a question for the owner. Name who holds it and send that party a request: what is needed, the options with their cost, the default taken at a stated time, and what happens meanwhile. +3. **Default.** Continue on the safe default; write it in the ledger. An unanswered request is chased once, then the default stands. + +The owner is asked only for a password, a sign-in, a payment, a legal commitment or a choice between two businesses, once, as an exact value or click to provide. + +Forbidden: typing or reusing a password, token or key from chat or a signed-in session; payment data, trades, transfers; minting or promising $TRI, or any value claim for XP; partner names, budgets or sentiment on public GitHub; secrets or PII on a machine that is not ours; using another party's machine without telling that party first; a speed or accuracy claim without a measurement and its command; a second spec where one exists; hand-written non-t27 logic over the caps; permanent deletion of anything that is not your own merged lane tree. + +Every loop tick ends with `Requests out:` (who, what, sent when, default, due). + ## 5. Skills and tooling ### Available Skills