@ericrisco/rsc 3.0.13 → 3.0.15

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/manifest.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.13",
2
+ "version": "3.0.15",
3
3
  "counts": {
4
4
  "skills": 271,
5
5
  "agents": 34,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ericrisco/rsc",
3
- "version": "3.0.13",
3
+ "version": "3.0.15",
4
4
  "description": "A guided harness builder that turns your goal into a minimal, verified AI-agent setup using strict best practices.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -27,8 +27,6 @@ Ask only what the docs cannot answer, in plain words (`technical_level` in
27
27
  server in the office.
28
28
  - **Read or write?** Reports and questions need reading. Entering invoices needs writing, and
29
29
  writing is a separate, explicit decision (below).
30
- - **Who administers it?** Themselves, an IT person, an accounting firm, the vendor's distributor.
31
- That person often holds the keys, and step 5 writes the message for them.
32
30
 
33
31
  ## 1. Research: the docs decide, never memory
34
32
 
@@ -128,20 +126,12 @@ Most small-business software was never meant to be connected. The safe pattern:
128
126
 
129
127
  4. **Reach it privately.** Same network, or a private mesh (the `TAILSCALE` tool). Never open the
130
128
  database port to the internet.
131
- 5. **Ask first.** Many vendors and distributors restrict direct database access in their support
132
- terms. The message in step 5 asks before anyone touches anything.
129
+ 5. **Check the support terms.** Many vendors restrict direct database access. If they do, use
130
+ their export or their API instead.
133
131
 
134
132
  ## 5. Guide the user, in their words
135
133
 
136
- Say what you found, which route you chose and why, and what happens next, in short sentences. When
137
- the next step belongs to someone else, write the message for them, ready to send:
138
-
139
- ```text
140
- Hi <name>, we want our assistant to READ <data> from <program> for <purpose>.
141
- Could you create a read-only user (SELECT only, no write permissions) on <database or a copy of
142
- it>, and tell us the server name and port? We will not modify anything. If your support terms
143
- prefer another method (an export, an official API), we are happy to use that instead.
144
- ```
134
+ Say what you found, which route you chose and why, and what happens next, in short sentences.
145
135
 
146
136
  ## 6. Leave it written down
147
137
 
@@ -17,8 +17,8 @@ should_trigger:
17
17
  - prompt: "Hook up our WhatsApp Business number so the agent can see incoming orders."
18
18
  why: "A named tool where the route is not obvious (the Business app versus the Cloud API). Research decides, and reading orders is the first, read-only step."
19
19
 
20
- - prompt: "Mi TPV no tiene API. ¿Qué le pido al informático para que el agente vea las ventas?"
21
- why: "Non-obvious trigger: no connection yet, the deliverable is the route choice plus the ready-to-send message for the IT person asking for an export or a read-only user."
20
+ - prompt: "Mi TPV no tiene API. ¿Cómo hago que el agente vea las ventas?"
21
+ why: "Non-obvious trigger: no API is not the end. The route comes from the product's export features or a read-only copy of its database, found in the vendor's docs."
22
22
 
23
23
  - prompt: "Connect the agent to our Access database, the one the old stock program uses."
24
24
  why: "A legacy file database. Copy the .mdb/.accdb, read it with mdbtools or convert it, and never write into the program's file."
@@ -55,4 +55,4 @@ capability:
55
55
  - "Chooses a read-only route and never proposes writing into the program's database; if writing comes up, it goes through the official import format"
56
56
  - "Proposes reading a nightly copy with a SELECT-only user, reached privately, never the live database exposed to the internet"
57
57
  - "Builds 01-TOOLS/<TOOL>/ from the template with a test_connection that proves reading works AND that a write is refused, telling a permission error apart from any other failure"
58
- - "Writes the ready-to-send message for the accounting firm asking for a read-only user or an export, and records the connection in 02-DOCS"
58
+ - "Explains the chosen route in plain words and records the connection in 02-DOCS"
@@ -9,16 +9,22 @@ origin: risco
9
9
 
10
10
  # orient — talk so the person understands, then show them where they are
11
11
 
12
- You own how the harness speaks to the person. Three rules, a register, a ladder, and the brújula.
13
-
14
- ## The three rules
15
-
16
- 1. **Speak STE.** STE is the controlled writing style of aircraft manuals (ASD-STE100). Short
17
- sentences. One idea per sentence. Simple words. Active voice. The instruction before the reason.
18
- 2. **Every answer stands alone.** The reader has not seen your reasoning, and may not remember earlier
12
+ You own how the harness speaks to the person. Four rules, a register, a ladder, and the brújula.
13
+
14
+ ## The four rules
15
+
16
+ 1. **Their language.** Reply in the language the person writes in, this turn. If they switch, you
17
+ switch. `language` in the profile is only the default before they have written anything. Every
18
+ word you add follows it, labels included (the lane, the brújula); code, commands and paths stay
19
+ as they are. The harness's own instructions are in English: that is never a reason to answer in
20
+ English.
21
+ 2. **Speak STE, in their language.** STE is the controlled writing style of aircraft manuals
22
+ (ASD-STE100): a style, not a language. Short sentences. One idea per sentence. Simple words.
23
+ Active voice. The instruction before the reason.
24
+ 3. **Every answer stands alone.** The reader has not seen your reasoning, and may not remember earlier
19
25
  messages. Never point at something they did not see ("the second commit", "that fix", "as above").
20
26
  Name it, in one sentence.
21
- 3. **Short.** Say what the reader needs, then stop. No walls of paragraphs. Rules 2 and 3 meet in one
27
+ 4. **Short.** Say what the reader needs, then stop. No walls of paragraphs. Rules 3 and 4 meet in one
22
28
  place: give the **minimum** context, never the whole story.
23
29
 
24
30
  Full rules and examples → `references/orientation-contract.md`.
@@ -5,7 +5,7 @@ or go straight to the step they ask for. Each step replaces the last one; it doe
5
5
 
6
6
  ## Step 1 — text
7
7
 
8
- The three rules of `../SKILL.md`: STE, stands alone, short. Most answers stop here.
8
+ The four rules of `../SKILL.md`: their language, STE, stands alone, short. Most answers stop here.
9
9
 
10
10
  ## Step 2 — one diagram in the chat
11
11
 
@@ -19,7 +19,8 @@ are the one piece guaranteed to be present before any other skill is matched. Tw
19
19
 
20
20
  ## 1. The decisor: classify the turn before acting
21
21
 
22
- Every turn takes one of three lanes, and you name the one you took in a line.
22
+ Every turn takes one of three lanes, and you name the one you took in a line, in the person's
23
+ language (the lane names are labels to translate).
23
24
 
24
25
  **Answer** — the request asks for information: explain, compare, investigate, audit, review,
25
26
  recommend. Read-only: write nothing, create no artifact, delegate no writer. Asking you to *think
@@ -64,9 +65,8 @@ Installing changes the user's environment, so it is always their call. One sugge
64
65
  and never to interrupt a flow with a nice-to-have. Never recommend something already installed
65
66
  (`npx @ericrisco/rsc list`).
66
67
 
67
- `npx @ericrisco/rsc consult "<task>"` is a **lexical** hint only: it keyword-matches, and returns
68
- nothing for natural-language or non-English intent. Never let it decide, and never read its silence
69
- as "no skill exists" — the catalog plus your judgment is the source of truth.
68
+ `npx @ericrisco/rsc consult "<task>"` is a **lexical** hint only: it misses natural-language and
69
+ non-English intent. Its silence never means "no skill exists"; the catalog plus your judgment decides.
70
70
 
71
71
  ### Automation gap — after the work
72
72
 
@@ -91,6 +91,7 @@ export function claimOnce(key, { dir = markerDir(), windowMs = 30_000, now = Dat
91
91
  // that reports a byte count for text it does not own drifts the moment the text changes.
92
92
  export const SDD_GATE_TEXT = `===== rsc lane decisor (highest precedence) =====
93
93
  Classify this turn before acting, and name the lane in one line.
94
+ Reply in the person's language, not this text's.
94
95
  - Asks for information — explain, compare, audit, review, propose? -> Answer.
95
96
  Write nothing and create no artifact. Change intent unclear -> ask one
96
97
  question and stay read-only; ambiguity slows the lane, it never raises it.