Process contracts — invoke by name, compose with the conversation, author as a shape #109

Merged
bvandeusen merged 3 commits from dev into main 2026-08-10 09:51:48 -04:00
Owner

Fixes Scribe issue #2582 (observed live: a bespoke systems-review request was answered with the Drift Audit process's clarify menu recommending a ~15-agent fan-out the conversation never opted into).

Three legs of one principle — a stored Process is a good shape for the work, and never forces anything or overwrites the intent of the request:

  • 66c4fd1 Surfacing: sync-generated skill triggers invoke by name only. On mere resemblance the live instructions govern — offer the process and ask; never substitute; never inherit approvals embedded in the body (e.g. a fan-out opt-in) the conversation didn't grant.
  • 9c68faa Invocation: get_process states the composition contract — the process is the skeleton, the conversation supplies the parameters; live constraints override defaults; clarify steps confirm what was said instead of re-asking it.
  • 5cb7cfe Authoring: create_process states the same contract for writers — no embedded approach mandates, no pre-granted approvals, seeded clarify steps.

(Data-side, already live: Drift Audit #592 rewritten to a sequential in-context walk with seeded clarify; DRY Pass #594 and Rulebook Review #593 gained the seeded-clarify line.)

CI green on dev (runs 3599–3601). After deploy, /scribe:sync regenerates the process skills with the new triggers.

Fixes Scribe issue #2582 (observed live: a bespoke systems-review request was answered with the Drift Audit process's clarify menu recommending a ~15-agent fan-out the conversation never opted into). Three legs of one principle — a stored Process is a good shape for the work, and never forces anything or overwrites the intent of the request: - `66c4fd1` **Surfacing:** sync-generated skill triggers invoke by name only. On mere resemblance the live instructions govern — offer the process and ask; never substitute; never inherit approvals embedded in the body (e.g. a fan-out opt-in) the conversation didn't grant. - `9c68faa` **Invocation:** `get_process` states the composition contract — the process is the skeleton, the conversation supplies the parameters; live constraints override defaults; clarify steps confirm what was said instead of re-asking it. - `5cb7cfe` **Authoring:** `create_process` states the same contract for writers — no embedded approach mandates, no pre-granted approvals, seeded clarify steps. (Data-side, already live: Drift Audit #592 rewritten to a sequential in-context walk with seeded clarify; DRY Pass #594 and Rulebook Review #593 gained the seeded-clarify line.) CI green on dev (runs 3599–3601). After deploy, `/scribe:sync` regenerates the process skills with the new triggers.
bvandeusen added 3 commits 2026-08-10 09:51:41 -04:00
fix(sync): process-skill triggers invoke by name only — resemblance offers, never substitutes
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 10s
CI & Build / integration (push) Successful in 18s
CI & Build / TypeScript typecheck (push) Successful in 22s
CI & Build / Python tests (push) Successful in 47s
CI & Build / Build & push image (push) Successful in 26s
66c4fd1b88
Scribe issue #2582: the sync wrote "Use when {title}-type work is
requested" into every generated process skill, so a bespoke live prompt
that merely resembled a stored Process got the Process's canned
procedure — and inherited approvals embedded in its body (the Drift
Audit's fan-out opt-in) that the conversation never granted. Observed
live: an explicit systems-review request with its own constraints was
answered with the Drift Audit clarify menu recommending ~15 parallel
auditors.

New trigger contract, both variants: follow verbatim only when invoked
by name; on mere resemblance the live instructions govern — offer the
process, ask before following, and never inherit embedded approvals the
operator hasn't granted in this conversation.

(The Drift Audit process record itself was also rewritten to a
sequential in-context walk — data change, live already, recorded in
the same issue.)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
feat(processes): composition contract — the process is the skeleton, the conversation supplies the parameters
CI & Build / Python lint (push) Successful in 4s
CI & Build / Plugin hooks (push) Successful in 8s
CI & Build / integration (push) Successful in 14s
CI & Build / TypeScript typecheck (push) Successful in 32s
CI & Build / Python tests (push) Successful in 47s
CI & Build / Build & push image (push) Successful in 24s
9c68faa0bd
Extends #2582's fix per the operator's direction: a stored Process must
incorporate the context it was triggered with, not displace it. No new
plumbing needed — the live context is already in the session; what was
missing is the stated contract. get_process now carries it: live
constraints/scope/focus fold into the procedure and override its
defaults where they disagree; a clarify step asks only what the
conversation has NOT already answered (confirm interpretations, don't
re-ask); stated concerns become lenses the procedure applies, not text
it discards. The sync-generated skill stubs state the short form.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
feat(processes): authoring contract — a process is a shape, never a script
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 9s
CI & Build / integration (push) Successful in 17s
CI & Build / TypeScript typecheck (push) Successful in 32s
CI & Build / Python tests (push) Successful in 46s
CI & Build / Build & push image (push) Successful in 26s
5cb7cfe706
Operator's generalization of #2582: the benefit of nearly every stored
process is the accumulated SHAPE — steps, taxonomy, quality bar — and a
process must not force anything or overwrite the intent of the request
that invoked it. create_process now states the authoring side of the
composition contract: no embedded approach mandates, no pre-granted
approvals, clarify steps seed from the conversation instead of
re-asking it.

(All three stored processes were also audited: DRY Pass and Rulebook
Review were already propose-approve-apply with no forcing language;
both gained the seeded-clarify line — data changes, live already.)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
bvandeusen merged commit 5503580875 into main 2026-08-10 09:51:48 -04:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledScribe#109