@hanzlaa/rcode 3.4.5 → 3.4.6
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/cli/generate-command-skills.cjs +16 -4
- package/cli/install.js +14 -4
- package/dist/rcode.js +1260 -2003
- package/package.json +1 -1
|
@@ -32,11 +32,23 @@ const path = require('path');
|
|
|
32
32
|
* lifecycle verbs. Internal sub-commands stay slash-only.
|
|
33
33
|
*/
|
|
34
34
|
const SIDEBAR_COMMANDS = new Set([
|
|
35
|
-
|
|
36
|
-
'
|
|
37
|
-
|
|
38
|
-
'
|
|
35
|
+
// Navigation & status
|
|
36
|
+
'do', 'status', 'progress', 'next', 'health',
|
|
37
|
+
// Core planning & execution
|
|
38
|
+
'plan', 'execute', 'add-phase', 'discuss-phase', 'complete-milestone',
|
|
39
|
+
'plan-milestone-gaps', 'autonomous',
|
|
40
|
+
// Project setup
|
|
39
41
|
'new-project', 'new-milestone', 'milestone-summary',
|
|
42
|
+
// Sprint workflow
|
|
43
|
+
'sprint-planning', 'sprint-status', 'execute-sprint', 'dev-story',
|
|
44
|
+
'create-story', 'create-epics-and-stories',
|
|
45
|
+
// Discussion & council
|
|
46
|
+
'council', 'discuss', 'prfaq',
|
|
47
|
+
// Quality & review
|
|
48
|
+
'ship', 'audit', 'verify-phase', 'verify-work', 'review', 'code-review',
|
|
49
|
+
'feature-drift', 'ui-phase', 'ui-review',
|
|
50
|
+
// Utility
|
|
51
|
+
'debug', 'session-report', 'forensics', 'map-codebase', 'quick',
|
|
40
52
|
'note', 'add-todo', 'check-todos', 'pause-work', 'resume-work',
|
|
41
53
|
]);
|
|
42
54
|
|
package/cli/install.js
CHANGED
|
@@ -408,7 +408,7 @@ function getPathsForIde(ide, target) {
|
|
|
408
408
|
case 'claude':
|
|
409
409
|
return {
|
|
410
410
|
agentsDir: path.join(target, '.claude', 'agents'),
|
|
411
|
-
commandsDir: path.join(target, '.claude', 'commands'
|
|
411
|
+
commandsDir: path.join(target, '.claude', 'commands'),
|
|
412
412
|
workflowsDir: path.join(target, '.rihal', 'workflows'),
|
|
413
413
|
referencesDir: path.join(target, '.rihal', 'references'),
|
|
414
414
|
binDir: path.join(target, '.rihal', 'bin'),
|
|
@@ -971,10 +971,15 @@ function buildInstallPlan(ide = 'claude', target = process.cwd()) {
|
|
|
971
971
|
}
|
|
972
972
|
|
|
973
973
|
// Commands — IDE-specific
|
|
974
|
+
// Claude: output as .claude/commands/rihal-{name}.md (hyphen namespace → /rihal-name)
|
|
975
|
+
// Cursor/Gemini: keep original flat name inside their rihal/ subdirectory
|
|
974
976
|
for (const f of walkFiles(path.join(SOURCE_ROOT, 'commands'))) {
|
|
975
977
|
const rel = path.relative(path.join(SOURCE_ROOT, 'commands'), f);
|
|
976
978
|
const ext = ide === 'cursor' ? '.mdc' : '.md';
|
|
977
|
-
const
|
|
979
|
+
const baseName = path.basename(f, '.md');
|
|
980
|
+
const outName = ide === 'claude'
|
|
981
|
+
? `rihal-${baseName}${ext}`
|
|
982
|
+
: baseName + ext;
|
|
978
983
|
plan.push({ src: f, rel: path.join(relCommands, path.dirname(rel), outName), ide, cursor: ide === 'cursor' });
|
|
979
984
|
}
|
|
980
985
|
|
|
@@ -1050,7 +1055,7 @@ function filterPlanByModules(plan, moduleNames) {
|
|
|
1050
1055
|
if (!mod) { console.warn(` ⚠ Unknown module: ${modName}`); continue; }
|
|
1051
1056
|
for (const a of mod.agents) allowed.add(path.join('.claude', 'agents', a));
|
|
1052
1057
|
for (const w of mod.workflows) allowed.add(path.join('.rihal', 'workflows', w));
|
|
1053
|
-
for (const c of mod.commands) allowed.add(path.join('.claude', 'commands',
|
|
1058
|
+
for (const c of mod.commands) allowed.add(path.join('.claude', 'commands', `rihal-${c}`));
|
|
1054
1059
|
for (const r of mod.references) allowed.add(path.join('.rihal', 'references', r));
|
|
1055
1060
|
}
|
|
1056
1061
|
// Always include bin/ (shared infrastructure, not module-specific)
|
|
@@ -1858,7 +1863,12 @@ async function install(opts) {
|
|
|
1858
1863
|
agentCount = fs.readdirSync(agentsDir).filter(f => (f.startsWith('rihal-') || f.startsWith('rcode-')) && (f.endsWith('.md') || f.endsWith('.mdc'))).length;
|
|
1859
1864
|
}
|
|
1860
1865
|
if (fs.existsSync(commandsDir)) {
|
|
1861
|
-
commandCount = fs.readdirSync(commandsDir).filter(f => f.endsWith('.md') || f.endsWith('.mdc')).length;
|
|
1866
|
+
commandCount = fs.readdirSync(commandsDir).filter(f => f.startsWith('rihal-') && (f.endsWith('.md') || f.endsWith('.mdc'))).length;
|
|
1867
|
+
}
|
|
1868
|
+
// Clean up legacy .claude/commands/rihal/ colon-namespace directory if it exists
|
|
1869
|
+
const legacyColonDir = path.join(opts.target, '.claude', 'commands', 'rihal');
|
|
1870
|
+
if (primaryIde === 'claude' && fs.existsSync(legacyColonDir)) {
|
|
1871
|
+
fs.rmSync(legacyColonDir, { recursive: true, force: true });
|
|
1862
1872
|
}
|
|
1863
1873
|
} catch {}
|
|
1864
1874
|
|