@rubytech/create-realagent-code 0.1.146 → 0.1.147
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/package.json +1 -1
- package/payload/platform/plugins/admin/PLUGIN.md +0 -1
- package/payload/platform/plugins/admin/hooks/__tests__/session-end-retrospective.test.sh +2 -2
- package/payload/platform/plugins/admin/hooks/session-end-retrospective.sh +6 -3
- package/payload/platform/templates/agents/admin/IDENTITY.md +1 -1
- package/payload/platform/plugins/admin/skills/commitment-followthrough/SKILL.md +0 -60
package/package.json
CHANGED
|
@@ -129,7 +129,6 @@ Tools are available via the `admin` MCP server.
|
|
|
129
129
|
| Plain-English explanation | User asks to explain, define, or pre-empts ("explain in plain English", "what does X mean", "define X", "I don't understand", "what is this"), or admin is about to return a reply containing a term not in the operator's prior turn | `skills/plainly/SKILL.md` |
|
|
130
130
|
| Manage admin users | User asks to add, remove, or list admins on this account, or change an admin PIN | `skills/admin-user-management/SKILL.md` |
|
|
131
131
|
| Session reset / continue / resume | User asks to clear the session, start fresh, continue the last session, or pick up where they left off | `skills/session-management/SKILL.md` |
|
|
132
|
-
| Commitment follow-through | A `<commitment-detected>` block appears in the prompt; the owner has just made a commitment that needs a backing mechanism | `skills/commitment-followthrough/SKILL.md` |
|
|
133
132
|
| Show or download a file | User asks to view, attach, or download a file or document, or the current turn produces a document the owner needs to review | `skills/file-presentation/SKILL.md` |
|
|
134
133
|
| Upgrade Maxy | User asks to upgrade, update, install the latest version, or accepts an upgrade offer | `skills/upgrade/SKILL.md` |
|
|
135
134
|
|
|
@@ -294,7 +294,7 @@ write_transcript "$T_RELEASE" \
|
|
|
294
294
|
"assistant|hello|" \
|
|
295
295
|
"user|/end|" \
|
|
296
296
|
"assistant|running retrospective|" \
|
|
297
|
-
"assistant||tool_use:
|
|
297
|
+
"assistant||tool_use:mcp__admin__session-retrospective-mark-complete"
|
|
298
298
|
ENV_REL=$(envelope_for "$OP_ID" "$T_RELEASE")
|
|
299
299
|
: > "$REQ_LOG"
|
|
300
300
|
run_hook "admin" "" "$ENV_REL"
|
|
@@ -325,7 +325,7 @@ fi
|
|
|
325
325
|
T_OTHER=$(mktemp); TMPFILES+=("$T_OTHER")
|
|
326
326
|
write_transcript "$T_OTHER" \
|
|
327
327
|
"user|/end|" \
|
|
328
|
-
"assistant||tool_use:
|
|
328
|
+
"assistant||tool_use:mcp__admin__session-retrospective-mark-complete"
|
|
329
329
|
# Active gate inspects only T_ACTIVE (no sentinel inside).
|
|
330
330
|
T_ACTIVE=$(mktemp); TMPFILES+=("$T_ACTIVE")
|
|
331
331
|
write_transcript "$T_ACTIVE" "user|/end|"
|
|
@@ -20,7 +20,10 @@
|
|
|
20
20
|
#
|
|
21
21
|
# Sentinel detection. Completion is recognised by greping the operator's
|
|
22
22
|
# own JSONL (transcript_path on the Stop envelope) for a `tool_use` block
|
|
23
|
-
# whose `name` is exactly `
|
|
23
|
+
# whose `name` is exactly `mcp__admin__session-retrospective-mark-complete`
|
|
24
|
+
# — that is the prefixed form Claude Code writes for MCP tools in the
|
|
25
|
+
# JSONL; the unprefixed name only appears in the operator-facing
|
|
26
|
+
# instruction text below. The
|
|
24
27
|
# sentinel-grep doubles as the re-entry guard: every Stop that fires after
|
|
25
28
|
# the agent's sentinel call sees the sentinel and exits 0 with
|
|
26
29
|
# `gate-released`, so the agent's wrap-up turn never re-blocks.
|
|
@@ -128,12 +131,12 @@ fi
|
|
|
128
131
|
# 1. The latest end-intent token in the most recent real-user message,
|
|
129
132
|
# or empty if no real user message matches.
|
|
130
133
|
# 2. Whether any `tool_use` block in the transcript names the sentinel
|
|
131
|
-
# tool `
|
|
134
|
+
# tool `mcp__admin__session-retrospective-mark-complete`.
|
|
132
135
|
# Output one line: <intent-token-or-empty>\t<sentinel-present-yes|no>
|
|
133
136
|
INSPECTION=$(TRANSCRIPT_PATH="$TRANSCRIPT_PATH" python3 - <<'PY'
|
|
134
137
|
import os, json
|
|
135
138
|
|
|
136
|
-
SENTINEL_TOOL = "
|
|
139
|
+
SENTINEL_TOOL = "mcp__admin__session-retrospective-mark-complete"
|
|
137
140
|
INTENT_TOKENS = ("/end", "/archive", "end session", "archive this session")
|
|
138
141
|
|
|
139
142
|
def is_real_user(rec):
|
|
@@ -71,7 +71,7 @@ When you receive a turn beginning with `[system: <name>-stop-hook]`:
|
|
|
71
71
|
2. Execute that single `Task` dispatch. Do not paraphrase the prompt, do not respond conversationally, do not ask the operator for clarification, do not surface the dispatch in chat.
|
|
72
72
|
3. When the subagent returns its one-line summary, emit a single space character and stop. The Stop hook's next fire will inspect the transcript, see the dispatch you just performed, and allow the stop.
|
|
73
73
|
|
|
74
|
-
These directives are never operator-driven. The `database-operator` specialist in particular, when dispatched via `post-turn-graph-pass.sh` (Task 412), runs as a background graph pass that the operator does not see; the dispatch prompt carries
|
|
74
|
+
These directives are never operator-driven. The `database-operator` specialist in particular, when dispatched via `post-turn-graph-pass.sh` (Task 412), runs as a background graph pass that the operator does not see; the dispatch prompt carries the conversation and prior-writes blocks and you must forward both verbatim.
|
|
75
75
|
|
|
76
76
|
## SOUL.md
|
|
77
77
|
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: commitment-followthrough
|
|
3
|
-
description: "Handles the platform-detected commitment signal: offers to track or automate the commitment, waits for owner confirmation, then picks the right backing mechanism (scheduled event, task, or workflow). Loads when the system prompt contains a `<commitment-detected>` block."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Commitment follow-through
|
|
7
|
-
|
|
8
|
-
This skill activates when the platform identifies that the owner has just made a commitment: something they said they would do. The skill's job is to offer the right backing mechanism, wait for the owner's confirmation, then create it. Without a backing mechanism, a commitment is a broken promise; with one, the agent can hold the owner to their word.
|
|
9
|
-
|
|
10
|
-
## The trigger
|
|
11
|
-
|
|
12
|
-
A `<commitment-detected>` block appears in the system prompt. The block names what the platform classifier extracted: the commitment text, the suggested mechanism (scheduled event, task, or workflow), and any time, recipient, or topic the classifier inferred.
|
|
13
|
-
|
|
14
|
-
## How to offer
|
|
15
|
-
|
|
16
|
-
Surface a brief, conversational offer. Name the commitment, name the suggested mechanism, and ask the owner to confirm, modify, or dismiss. One or two sentences. Not a form. Not a list of options. Examples:
|
|
17
|
-
|
|
18
|
-
- "I'll set a reminder for Tuesday morning to chase the Acme invoice. Confirm?"
|
|
19
|
-
- "Want me to create a task for the photo brief so it doesn't slip?"
|
|
20
|
-
- "Shall I schedule the weekly check-in with Daniel on Mondays at 9?"
|
|
21
|
-
|
|
22
|
-
## Never act without confirmation
|
|
23
|
-
|
|
24
|
-
The owner must say "yes" or give specifics before any tool call. If they dismiss ("no thanks", "I'll handle it"), acknowledge briefly and continue with whatever they were discussing. Do not re-offer for the same commitment.
|
|
25
|
-
|
|
26
|
-
If they modify ("make it next Monday instead"), incorporate the changes and confirm before creating.
|
|
27
|
-
|
|
28
|
-
## The two-rule discipline
|
|
29
|
-
|
|
30
|
-
This skill is the operator's side of the two-rule contract on commitments.
|
|
31
|
-
|
|
32
|
-
1. **You never state a future commitment** ("I'll flag", "I'll check", "I'll remind") **without immediately creating the mechanism to fulfil it.** A commitment without a backing mechanism is a broken promise.
|
|
33
|
-
2. **When the owner makes a commitment, offer to back it with a mechanism**, but do not create it without confirmation.
|
|
34
|
-
|
|
35
|
-
Rule 1 is yours; rule 2 is this skill's job.
|
|
36
|
-
|
|
37
|
-
## Picking the mechanism
|
|
38
|
-
|
|
39
|
-
Use the most appropriate tool:
|
|
40
|
-
|
|
41
|
-
- `schedule-event` for time-bound reminders (every Monday, on Tuesday, by Friday).
|
|
42
|
-
- `work-create` for open-ended obligations (chase X, finish Y, prepare Z).
|
|
43
|
-
- `workflow-create` for multi-step processes that recur (monthly close-out, new-instruction onboarding).
|
|
44
|
-
|
|
45
|
-
## Verify executor capabilities before promising a workflow
|
|
46
|
-
|
|
47
|
-
Before committing to build a workflow, check that every step maps to a capability the executor actually has. Tool steps need the named plugin and tool to exist. Agentic LLM steps (steps that browse, click, fill forms, or interact with external systems) need the relevant MCP server command available in `PATH`. If a step requires a capability that does not exist, say so upfront: do not promise a workflow you cannot build. The owner can either narrow the scope or wait for the capability to ship.
|
|
48
|
-
|
|
49
|
-
## After creation
|
|
50
|
-
|
|
51
|
-
Tell the owner what was created (task ID, scheduled event time, workflow name) so they have something they can reference, modify, or cancel later. Then resume the conversation.
|
|
52
|
-
|
|
53
|
-
## Failure modes
|
|
54
|
-
|
|
55
|
-
- **`<commitment-detected>` block names a mechanism that does not exist** (e.g. `workflow-create` while workflows are not enabled on this account). Surface the gap and offer the next-best mechanism.
|
|
56
|
-
- **Owner approves but the create tool fails.** Surface the error literally. Do not silently substitute a different mechanism.
|
|
57
|
-
|
|
58
|
-
## What this skill does not do
|
|
59
|
-
|
|
60
|
-
It does not detect commitments itself; the platform does that and injects the block. It does not act on the owner's behalf without explicit confirmation. It does not create mechanisms for commitments the owner did not actually make; if the platform's classification looks wrong, ignore the block and continue.
|