@ericrisco/rsc 0.1.40 → 0.1.42

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": "0.1.40",
2
+ "version": "0.1.42",
3
3
  "counts": {
4
4
  "skills": 257
5
5
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ericrisco/rsc",
3
- "version": "0.1.40",
3
+ "version": "0.1.42",
4
4
  "description": "Eric Risco's agent-skills catalog as a granular, self-recommending CLI installer.",
5
5
  "type": "module",
6
6
  "bin": {
package/scripts/rsc.js CHANGED
@@ -102,6 +102,24 @@ function printNextSteps(targets, ids) {
102
102
  say('\n Add something by hand anytime: npx @ericrisco/rsc add <skill>');
103
103
  say(' Browse the catalog / get picks: npx @ericrisco/rsc consult "whatever you need"');
104
104
  say('────────────────────────────────────────────────────────');
105
+ printAgentHandoff();
106
+ }
107
+
108
+ // A machine-readable handoff addressed to the AGENT (not the human). After an
109
+ // equipping install the skills + hooks are on disk but NOT live until the session
110
+ // reloads (Claude Code loads them at SessionStart; Codex reads AGENTS.md next turn).
111
+ // "Minute 1" = the user's NEXT message works with everything loaded — so we tell the
112
+ // agent to reload, confirm it's equipped, and explicitly NOT auto-start a task.
113
+ function printAgentHandoff() {
114
+ say('\n════════════════ AGENT HANDOFF ════════════════');
115
+ say('rsc is installed but NOT active in this session yet.');
116
+ say('AGENT, do this now:');
117
+ say(' 1. Reload/restart this session so the new skills + hooks load');
118
+ say(' (Claude Code: restart the session · Codex/AGENTS.md tools: next turn).');
119
+ say(' 2. After reload you are EQUIPPED — orient + suggest are always-on.');
120
+ say(' 3. Tell the user rsc is ready; they can start in their own words.');
121
+ say(' Do NOT auto-start a task — wait for the user.');
122
+ say('════════════════════════════════════════════════');
105
123
  }
106
124
 
107
125
  async function wizard() {
@@ -171,7 +189,8 @@ async function main() {
171
189
  }
172
190
  const ids = [...new Set(['orient', 'suggest', ...requested])];
173
191
  for (const t of targets) await applyInstall({ skillIds: ids, target: t });
174
- return void say(`✅ Installed for ${targets.join(', ')}: ${requested.join(', ')}`);
192
+ say(`✅ Installed for ${targets.join(', ')}: ${requested.join(', ')}`);
193
+ return void say(' ↻ Reload/restart your assistant so the new skill activates.');
175
194
  }
176
195
  case 'install': {
177
196
  const profile = flag('profile') || 'minimal';
@@ -179,7 +198,9 @@ async function main() {
179
198
  let ids = skillsForProfile(loadManifest(), profile);
180
199
  ids = [...new Set(['orient', 'suggest', ...ids])].filter((id) => !without.includes(id));
181
200
  for (const t of targets) await applyInstall({ skillIds: ids, target: t });
182
- return void say(`✅ Profile '${profile}' installed for ${targets.join(', ')} (${ids.length} skills)`);
201
+ say(`✅ Profile '${profile}' installed for ${targets.join(', ')} (${ids.length} skills)`);
202
+ printAgentHandoff();
203
+ return;
183
204
  }
184
205
  case 'consult': {
185
206
  const ids = await recommendIds(argv.slice(1).join(' '));