@slycode/slycode 0.1.14 → 0.1.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/dist/bridge/session-manager.js +1 -8
- package/dist/bridge/session-manager.js.map +1 -1
- package/dist/store/skills/context-priming/references/area-index.md +121 -68
- package/{templates/store/skills/context-priming/references → dist/store/skills/context-priming}/references/areas/feature-guide.md +44 -18
- package/dist/store/skills/context-priming/references/areas/messaging.md +108 -34
- package/dist/store/skills/context-priming/references/areas/scripts-deployment.md +61 -16
- package/dist/store/skills/context-priming/references/areas/skills.md +99 -38
- package/{templates/updates/skills/context-priming/references → dist/store/skills/context-priming}/references/areas/terminal-actions.md +1 -1
- package/dist/store/skills/context-priming/references/areas/terminal-bridge.md +74 -42
- package/dist/store/skills/context-priming/references/areas/web-frontend.md +259 -74
- package/dist/web/.next/BUILD_ID +1 -1
- package/dist/web/.next/build-manifest.json +2 -2
- package/dist/web/.next/server/app/_global-error.html +2 -2
- package/dist/web/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.html +1 -1
- package/dist/web/.next/server/app/_not-found.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/web/.next/server/pages/404.html +1 -1
- package/dist/web/.next/server/pages/500.html +2 -2
- package/lib/cli/sync.d.ts +7 -0
- package/lib/cli/sync.d.ts.map +1 -1
- package/lib/cli/sync.js +32 -0
- package/lib/cli/sync.js.map +1 -1
- package/lib/cli/update.d.ts.map +1 -1
- package/lib/cli/update.js +9 -0
- package/lib/cli/update.js.map +1 -1
- package/package.json +1 -1
- package/templates/kanban-seed.json +1 -1
- package/templates/store/skills/context-priming/references/area-index.md +121 -68
- package/templates/{updates/skills/context-priming/references → store/skills/context-priming}/references/areas/feature-guide.md +44 -18
- package/templates/store/skills/context-priming/references/areas/messaging.md +108 -34
- package/templates/store/skills/context-priming/references/areas/scripts-deployment.md +61 -16
- package/templates/store/skills/context-priming/references/areas/skills.md +99 -38
- package/{dist/store/skills/context-priming/references → templates/store/skills/context-priming}/references/areas/terminal-actions.md +1 -1
- package/templates/store/skills/context-priming/references/areas/terminal-bridge.md +74 -42
- package/templates/store/skills/context-priming/references/areas/web-frontend.md +259 -74
- package/templates/updates/skills/context-priming/references/area-index.md +121 -68
- package/{dist/store/skills/context-priming/references → templates/updates/skills/context-priming}/references/areas/feature-guide.md +44 -18
- package/templates/updates/skills/context-priming/references/areas/messaging.md +108 -34
- package/templates/updates/skills/context-priming/references/areas/scripts-deployment.md +61 -16
- package/templates/updates/skills/context-priming/references/areas/skills.md +99 -38
- package/templates/{store/skills/context-priming/references → updates/skills/context-priming}/references/areas/terminal-actions.md +1 -1
- package/templates/updates/skills/context-priming/references/areas/terminal-bridge.md +74 -42
- package/templates/updates/skills/context-priming/references/areas/web-frontend.md +259 -74
- package/dist/store/skills/context-priming/references/areas/claude-actions.md +0 -120
- package/dist/store/skills/context-priming/references/references/area-index.md +0 -152
- package/dist/store/skills/context-priming/references/references/areas/messaging.md +0 -251
- package/dist/store/skills/context-priming/references/references/areas/scripts-deployment.md +0 -183
- package/dist/store/skills/context-priming/references/references/areas/skills.md +0 -196
- package/dist/store/skills/context-priming/references/references/areas/terminal-bridge.md +0 -263
- package/dist/store/skills/context-priming/references/references/areas/web-frontend.md +0 -437
- package/dist/store/skills/context-priming/references/references/maintenance.md +0 -128
- package/templates/store/skills/context-priming/references/areas/claude-actions.md +0 -120
- package/templates/store/skills/context-priming/references/references/area-index.md +0 -152
- package/templates/store/skills/context-priming/references/references/areas/messaging.md +0 -251
- package/templates/store/skills/context-priming/references/references/areas/scripts-deployment.md +0 -183
- package/templates/store/skills/context-priming/references/references/areas/skills.md +0 -196
- package/templates/store/skills/context-priming/references/references/areas/terminal-bridge.md +0 -263
- package/templates/store/skills/context-priming/references/references/areas/web-frontend.md +0 -437
- package/templates/store/skills/context-priming/references/references/maintenance.md +0 -128
- package/templates/updates/skills/context-priming/references/areas/claude-actions.md +0 -120
- package/templates/updates/skills/context-priming/references/references/area-index.md +0 -152
- package/templates/updates/skills/context-priming/references/references/areas/messaging.md +0 -251
- package/templates/updates/skills/context-priming/references/references/areas/scripts-deployment.md +0 -183
- package/templates/updates/skills/context-priming/references/references/areas/skills.md +0 -196
- package/templates/updates/skills/context-priming/references/references/areas/terminal-bridge.md +0 -263
- package/templates/updates/skills/context-priming/references/references/areas/web-frontend.md +0 -437
- package/templates/updates/skills/context-priming/references/references/maintenance.md +0 -128
- /package/dist/web/.next/static/{wMUaNt62q8VYjpVs4m1_t → sAL_sqPSOaOIrKiwdPzL2}/_buildManifest.js +0 -0
- /package/dist/web/.next/static/{wMUaNt62q8VYjpVs4m1_t → sAL_sqPSOaOIrKiwdPzL2}/_clientMiddlewareManifest.json +0 -0
- /package/dist/web/.next/static/{wMUaNt62q8VYjpVs4m1_t → sAL_sqPSOaOIrKiwdPzL2}/_ssgManifest.js +0 -0
|
@@ -1,101 +1,154 @@
|
|
|
1
1
|
# Area Index
|
|
2
2
|
|
|
3
|
-
Updated: 2026-
|
|
3
|
+
Updated: 2026-03-14
|
|
4
4
|
|
|
5
5
|
## Areas
|
|
6
6
|
|
|
7
7
|
### web-frontend
|
|
8
8
|
- path: areas/web-frontend.md
|
|
9
|
-
- updated: 2026-
|
|
10
|
-
- load-when: dashboard, kanban, cards, modal, UI components, drag-drop, project page, checklist,
|
|
9
|
+
- updated: 2026-03-14
|
|
10
|
+
- load-when: dashboard, kanban, cards, modal, UI components, drag-drop, project page, checklist, action config, health monitor, reconnection, cli assets, assets, search, scaffolding, activity feed, keyboard shortcuts, health score, tab sync, theme, design system, colors, gradient, texture, grain, noise, logo, neon, glow, blend mode, terminal styling, dark mode, light mode, provider selector, provider button, store, updates, update delivery, diff, assistant, asset creation, terminal prompt, pushToTerminal, Code Den, StoreView, UpdatesView, SkillDiffViewer, AssetAssistant, mcp config, automation, automations, scheduler, cron, cron-utils, timezone, TZ, agent notes, notes, summary note, wide viewport, 4K, copyright, favicon, context menu, right-click, confirm dialog, CliAssetsTab, project reorder, displayOrder, version check, VersionUpdateToast, AddProjectModal, scaffold wizard, provider overlay, placement, classAssignments, voice, voice input, voice recording, transcribe, Whisper, STT, VoiceControlBar, VoiceSettings, VoiceContext, VoiceClaimant, FloatingVoiceWidget, ThemeToggle, settings, image paste, screenshot, clipboard, DashboardData, chevron, hazard stripe, loadParentEnv, shadow, shadow depth, elevation, shadow-surface, shadow-card, shadow-overlay, lane texture, lane-texture, inset shadow, card number, glow-color, type emoji, glassmorphic, compact card, JetBrains Mono, priority glow, responsive, mobile, touch, fullscreen, snap-scroll, scrollbar-hide, import preview, ImportDialog, SKILL.md-only, skillMainOnly, activity ring, DEV_HOSTNAME, allowedDevOrigins, version display, getRepoRoot, getParentEnv, MASTER_PROJECT_ID, workspace ID, basename, fetchWithTimeout, checkSessionAlive, liveness check, soft failure, hard failure, activity detection, fresh session, resume session, action-scanner, ActionUpdatesModal, action updates, action cache, invalidateActionsCache, instruction file, instruction file warning, resize broadcast, resize sync, grace window, nextRun, getNextRun, HMR, globalThis, per-card provider
|
|
11
11
|
- notes:
|
|
12
|
-
- CardModal tabs
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
12
|
+
- CardModal tabs: Details, Notes?, Design?, Feature?, Test?, Checklist?, Terminal. Edit session protection (2000ms grace). suppressAutoTerminal from context menu. Fullscreen on mobile (rounded-none, h-full), windowed on desktop (lg:rounded-xl, lg:max-w-4xl). Horizontal tab scroll with scrollbar-hide on mobile.
|
|
13
|
+
- Automation uses card description as prompt. Run Now button with feedback. Orange theme. onActiveAutomationsChange drives header pulse. Timezone badge in AutomationsScreen header + AutomationConfig one-shot picker. Automation safeguards: cannot archive automation cards (CLI + web), cannot enable automation on archived cards.
|
|
14
|
+
- Surgical save: changedCardIds in POST merges against disk. last_modified_by tracks source (web/cli/agent).
|
|
15
|
+
- Right-click context menu on cards: move stage, set priority, copy title/ID/desc, archive, delete. Portal z-51/52, lane-colored accent bars.
|
|
16
|
+
- Z-index layers: BackdropModal z-50, ContextMenu z-51, Submenu z-52, ConfirmDialog z-60
|
|
17
|
+
- Provider button group pre-fills from stage defaults. Session name: {projectId}:{provider}:card:{cardId}
|
|
18
|
+
- Store canonical flat layout (store/skills/, store/actions/, store/agents/). UpdatesView: accept/dismiss/preview workflow. CliAssetsTab (was ToolkitTab). ImportDialog for skill imports: SKILL.md-only default, full folder option. Preview API lists files before import.
|
|
19
|
+
- Action updates: ActionUpdatesModal for accept/dismiss/preview with diff viewer. ProjectHeader polls for actionEntries count, shows badge on Actions button. SlyActionConfigModal shows "Updates" tab when available. Cache invalidated via /api/sly-actions/invalidate on modal close.
|
|
20
|
+
- action-scanner.ts: scans store/actions/*.md, parses YAML frontmatter, assembles SlyActionsConfig with 30s cache, writes back from config (reverse-engineers classes from classAssignments), content-hash based update scanning, additive class merge on accept.
|
|
21
|
+
- Dashboard project drag-and-drop reordering with displayOrder field. AddProjectModal wizard: details → providers → review → creating → summary.
|
|
22
|
+
- VersionUpdateToast: npm version polling (6-hour interval, daily dismiss, bottom-left toast).
|
|
23
|
+
- Scheduler auto-starts via instrumentation.ts (30s), 60s grace window prevents stale ticks on re-enable. HMR-safe via globalThis state/timer. pushToTerminal() dispatches to GlobalClaudePanel.
|
|
24
|
+
- Single `actions` prop on ClaudeTerminalPanel, split by placement locally (startup/toolbar/both). CardModal and GlobalClaudePanel each call one getActionsForClass().
|
|
25
|
+
- SlyActionConfigModal: two-tab layout — Commands tab (edit definitions + placement dropdown) and Classes tab (assign + reorder commands per terminal class). Voice-enabled assistant terminal, Escape passes through to terminal when expanded.
|
|
26
|
+
- Voice: global VoiceContext (useVoice() hook). Claim system: CardModal/GlobalClaudePanel claim → release. FloatingVoiceWidget when unclaimed. VoiceControlBar, MediaRecorder → /api/transcribe → insert at claimant target. ThemeToggle for light/dark in Dashboard.
|
|
27
|
+
- Image paste: Terminal.tsx intercepts Ctrl+V via xterm's `attachCustomKeyEventHandler` (not DOM keydown — reliable after crash/reconnect), clipboard.read() for images → bridge /sessions/:name/image → inject `[Screenshot: ...]` into PTY. Screenshot toast overlay on ClaudeTerminalPanel.
|
|
28
|
+
- Path resolution centralized: getSlycodeRoot() (workspace) + getPackageDir() (dev: repo root, prod: node_modules/@slycode/slycode/dist/). All API routes use these — no local getRepoRoot(). CLI assets import/sync use registry.ts getRepoRoot() instead of claude-master project lookup.
|
|
29
|
+
- next.config.ts: getParentEnv() reads DEV_HOSTNAME from parent .env for allowedDevOrigins (no hardcoded hostnames). Dashboard footer shows slycode version from /api/version-check with clickable slycode.ai link.
|
|
30
|
+
- Scrubbed hardcoded project names: asset-scanner.ts uses MASTER_PROJECT_ID (path.basename), kanban-paths.ts derives workspace ID with underscore→hyphen normalization. paths.ts removed legacy root env var fallback (SLYCODE_HOME → cwd only).
|
|
31
|
+
- NEVER use dark-end color scales for vibrant dark mode — use bright color at low opacity instead
|
|
32
|
+
- Shadow depth system: 3 CSS custom property tiers (--shadow-surface, --shadow-card, --shadow-overlay) with light/dark variants. All neon-pulse keyframes layer glow on top of shadow vars. CardModal uses shadow-(--shadow-overlay). KanbanColumn wrappers use lightweight shadow.
|
|
33
|
+
- Texture: three layers (grain + perlin + depth) + lane-texture (18px grid on column card areas) + `.light-clean` suppression (hides grain/depth on headers in light mode). soft-light → warm cast on dark — use screen. drop-shadow → rectangular glow with blend-mode logos.
|
|
34
|
+
- Global terminal rebranded from neon-orange to neon-blue (steely blue #2490b5 in light mode). All glow effects have separate light-mode keyframes for visibility. ClaudeTerminalPanel buttons are neon-blue.
|
|
35
|
+
- KanbanColumn: light mode flat solid bg (no gradients), thicker borders (3px), neutral text colors (void-500/void-600). Inset shadows on headers (color-matched per lane). Header text has drop-shadow for legibility.
|
|
36
|
+
- KanbanCardItem: glassmorphism (bg-white/40 + backdrop-blur, dark: bg-[#20232a]/55), priority-colored left border + hover inset glow (--glow-color CSS var), card numbers (#0001 format, JetBrains Mono), type emojis replace color dots, compact mode for done column. Session status: green ping (running), orange (paused), grey (none).
|
|
37
|
+
- Voice-aware click-outside: GlobalClaudePanel and SlyActionConfigModal won't close while voice is recording/transcribing.
|
|
38
|
+
- Scheduler timezone-aware (TZ env var). loadParentEnv() reads .env from workspace root (Next.js only loads web/.env). Always recalculates nextRun for accurate countdowns. Automation run header: === AUTOMATION RUN === with time, card, trigger (scheduled with cron description / manual), last run + relative time.
|
|
39
|
+
- cronToHumanReadable() in cron-utils.ts (shared by AutomationConfig, AutomationsScreen). getNextRunISO() removed — all nextRun calculation now server-side via scheduler.ts getNextRun(). Kanban GET API dynamically computes nextRun for all enabled recurring cards. Timezone abbreviation appended to time descriptions.
|
|
40
|
+
- AutomationsScreen redesigned: max-w-5xl centered, 2-col grid (not 3), cards have chevron texture + hazard stripe + orange left border. Large countdown timers (text-2xl), "idle" label. Collapsible tag groups via `<details>`. New CSS: `.automation-chevron`, `.hazard-stripe` + muted variants.
|
|
41
|
+
- AgentNote extended: summary?, summarizedCount?, dateRange? for note summarization. Amber "Summary" badge in CardModal notes tab.
|
|
42
|
+
- Responsive mobile: CardModal fullscreen on mobile, GlobalClaudePanel fullscreen when expanded (h-svh w-screen on mobile), HealthMonitor click-to-toggle (was hover), Terminal touch-scroll + debounced resize (150ms), ProjectHeader mobile search overlay + hidden Actions, KanbanColumn snap-scroll (85vw on mobile). `.scrollbar-hide` CSS utility. All header buttons min-h/w-[44px] touch targets.
|
|
43
|
+
- Activity ring: uses isActive (not status=running) for session detection. Global terminal sessions included in counts.
|
|
44
|
+
- Scheduler split fresh/resume: fresh uses checkSessionAlive(20s), resume uses waitForActivity()+retry. fetchWithTimeout(10s) on all bridge calls. Soft failure notifications only on hard errors.
|
|
45
|
+
- Instruction file warning: ClaudeTerminalPanel checks /check-instruction-file on provider/cwd change. Amber warning + opt-out checkbox if missing. createInstructionFile state passed to session creation.
|
|
46
|
+
- Resize broadcast: Terminal.tsx guards resize POST (visible tabs only), suppressResizePost prevents echo loop from SSE resize events, skips resize on reconnect.
|
|
29
47
|
|
|
30
48
|
### terminal-bridge
|
|
31
49
|
- path: areas/terminal-bridge.md
|
|
32
|
-
- updated: 2026-
|
|
33
|
-
- load-when: terminal,
|
|
50
|
+
- updated: 2026-03-14
|
|
51
|
+
- load-when: terminal, terminal panel, xterm, bridge, pty, session, websocket, SSE, spawn, terminal class, security, stats, activity log, stop-all, provider, providers.json, multi-provider, gemini, codex, claude, resume, skip-permissions, YOLO, session detection, session ID, screenshot, image, image upload, image delivery, group status, action endpoint, relink, race condition, creating, mutex, idempotent, session cleanup, stopped session, heartbeat, instruction file, instructionFile, altInstructionFile, check-instruction-file, ensureInstructionFile, resize broadcast, suppressResizePost, Windows, ConPTY, chunked write, deferred prompt, bracketed paste, .cmd, pendingPrompt, paste interception, attachCustomKeyEventHandler
|
|
34
52
|
- notes:
|
|
35
53
|
- Pass prompts as positional args to Claude CLI, NOT -p flag (-p is print mode)
|
|
36
|
-
- Bridge
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
54
|
+
- Bridge: localhost binding, command whitelist (bridge-config.json), CWD validation (absolute path)
|
|
55
|
+
- Activity tracking: lastOutputAt, 2s threshold. Grace period (5s) prevents idle timeout race. activityStartedAt for debouncing.
|
|
56
|
+
- Atomic state saves (temp + rename). bridge-sessions.json crash on corrupt, graceful on ENOENT.
|
|
57
|
+
- Session names: {projectId}:{provider}:card:{cardId} with legacy fallback. POST stop = Escape, DELETE = kill.
|
|
58
|
+
- provider-utils.ts builds command args from providers.json (flag vs subcommand resume)
|
|
59
|
+
- Session detection ALL providers: Claude (.jsonl), Codex (rollout UUID), Gemini (chat JSON) — 60s timeout
|
|
60
|
+
- Prompt works alongside resume: Claude positional, Codex positional after subcommand
|
|
61
|
+
- claude-utils.ts: provider-agnostic dispatchers (getProviderSessionDir, detectNewProviderSessionId, getMostRecentProviderSessionId)
|
|
62
|
+
- Image delivery: POST /sessions/:name/image (multer, 10MB), screenshot-utils.ts saves to screenshots/ in session CWD, 10-file retention, auto-.gitignore
|
|
63
|
+
- ActivityTransition: became (active/inactive), outputAgeMs, triggerSnippet/RawHex/DataLength (flat, not nested)
|
|
64
|
+
- New endpoints: GET /groups/:group/status, POST /sessions/:name/action (compact/clear/interrupt), POST /sessions/:name/relink
|
|
65
|
+
- SessionInfo includes group, resumed, lastActive fields
|
|
66
|
+
- Race condition fix: createSession() uses 'creating' placeholder as mutex. Concurrent requests for same session get 202 (idempotent). guidDetectionCancelled flag prevents stale detection overwrites.
|
|
67
|
+
- Stopped sessions removed from in-memory map (frees slot), data preserved in persistedState for resume.
|
|
68
|
+
- SSE heartbeat: 15s comment heartbeats keep connections alive through proxies (Tailscale, Next.js)
|
|
69
|
+
- Instruction file fallback: checkInstructionFile() priority scan (primary → alt → sibling copy source). ensureInstructionFile() copies on demand. Opt-in via createInstructionFile in CreateSessionRequest. GET /check-instruction-file endpoint for pre-flight checks.
|
|
70
|
+
- Resize broadcast: PTY resize events sent via SSE to all connected tabs. Terminal.tsx guards resize POST (visible tabs only, suppressResizePost echo-loop prevention, skip on reconnect).
|
|
71
|
+
- Windows ConPTY: .cmd extension auto-appended for CLI commands. Deferred prompt delivery via bracketed paste after output settles (1.5s quiet / 30s max). Chunked writes (1024B, 500ms delay) avoid ConPTY truncation. Paste interception uses xterm `attachCustomKeyEventHandler` (not DOM keydown).
|
|
47
72
|
|
|
48
|
-
###
|
|
49
|
-
- path: areas/
|
|
50
|
-
- updated: 2026-
|
|
51
|
-
- load-when: actions, prompts, templates, context injection, commands, visibility,
|
|
73
|
+
### terminal-actions
|
|
74
|
+
- path: areas/terminal-actions.md
|
|
75
|
+
- updated: 2026-03-10
|
|
76
|
+
- load-when: actions, prompts, templates, context injection, commands, visibility, action config, terminal commands, startup commands, active commands, test review, placement, classAssignments, deep design, deep-design, action scanner, action updates, action .md, store/actions, action frontmatter, action cache, action delivery
|
|
52
77
|
- notes:
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
78
|
+
- Provider-agnostic: same commands across Claude, Codex, Gemini. Individual .md files in store/actions/ (v4.0)
|
|
79
|
+
- Each action is a .md file with YAML frontmatter (name, version, label, group, placement, classes map) + prompt body
|
|
80
|
+
- classAssignments assembled at runtime from per-action classes maps, sorted by priority (ascending)
|
|
81
|
+
- Context templates hardcoded in sly-actions.ts (no longer in JSON config)
|
|
82
|
+
- action-scanner.ts: parse, cache (30s), assemble config, write back, update scanning (content-hash), accept with additive class merge
|
|
83
|
+
- messaging/sly-action-filter.ts has duplicated YAML parser + 30s cache (reads store/actions/ directly)
|
|
84
|
+
- Action update delivery: updates/actions/ → content-hash diff → accept with class merge → store/actions/
|
|
85
|
+
- ActionUpdatesModal.tsx for accept/dismiss/preview. ProjectHeader polls for update count badge.
|
|
86
|
+
- SlyActionConfigModal shows "Updates" tab when action updates available
|
|
87
|
+
- Groups: Card Actions (14), Session, Project, Utilities, Action Assistant (no Problems group)
|
|
88
|
+
- Deep Design: 4-phase workflow (design doc → parallel analysis agents → synthesis → Q&A). 6 optional agent perspectives.
|
|
89
|
+
- Test Review: interactive testing-lane with checklist assessment, area priming, max 3 questions/round
|
|
90
|
+
- Organise Backlog: `kanban board` snapshot + `kanban reorder` for reprioritisation
|
|
59
91
|
|
|
60
92
|
### messaging
|
|
61
93
|
- path: areas/messaging.md
|
|
62
|
-
- updated: 2026-
|
|
63
|
-
- load-when: telegram, messaging, voice, TTS, STT, speech, channel, bot, ElevenLabs, Whisper, voice swap, stop command, response mode, tone,
|
|
94
|
+
- updated: 2026-03-13
|
|
95
|
+
- load-when: telegram, messaging, voice, TTS, STT, speech, channel, bot, ElevenLabs, Whisper, whisper.cpp, local STT, STT_BACKEND, voice swap, stop command, response mode, tone, action filter, provider, provider resolution, bridge provider, explicit session, default provider, PROVIDER_LABELS, permission mismatch, /search, /provider, /sly, /switch, /global, /project, card search, photo, image, album, navigation, target, inline keyboard, callback, instruction file, ifc_, pre-flight, PendingInstructionFileConfirm
|
|
64
96
|
- notes:
|
|
65
|
-
- Channel
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
97
|
+
- Channel interface: onText/onVoice/onPhoto/onCommand + sendText/sendTextRaw/sendVoice/sendInlineKeyboard/setPersistentKeyboard/onCallback
|
|
98
|
+
- Navigation model: three-level targets (global/project/card) via /switch command with inline keyboards
|
|
99
|
+
- Bot commands: /start, /switch, /global, /project, /search, /sly, /status, /provider, /voice, /mode, /tone
|
|
100
|
+
- Callback prefixes: sw_ (switch), qc_ (quick card), cfg_ (config), perm_ (permissions), mode_, tone_
|
|
101
|
+
- State: messaging-state.json (targetType, projectId, cardId, cardStage, provider, voice, responseMode, voiceTone)
|
|
102
|
+
- Voice: Dual-backend STT (OpenAI Whisper or local whisper.cpp via STT_BACKEND env var) → ElevenLabs v3 TTS with [audio tags]. "stop" intercepted → Escape to session.
|
|
103
|
+
- skipPermissions always true. Permission mismatch detection for web-started sessions.
|
|
104
|
+
- sly-action-filter.ts: v3 classAssignments-based filtering. kanban-client.ts: card data, searchCards
|
|
105
|
+
- Photo albums batched via media_group_id (2s window). BridgeClient.sendImage() → bridge screenshot
|
|
106
|
+
- Persistent keyboard: [['/switch', '/search'], ['/provider', '/status'], ['/voice', '/tone'], ['/mode', '/sly']]
|
|
107
|
+
- Session names: global:{provider}:global, {projectId}:{provider}:global, {projectId}:{provider}:card:{cardId}
|
|
108
|
+
- Provider auto-resolution: resolveProviderFromBridge() / resolveProjectProviderFromBridge() pick provider from most recent bridge session. hasExplicitSession() determines default vs explicit. Navigation commands (sw_, /global, /project) auto-resolve provider. cfg_ callback updates providers.json global default when no explicit session.
|
|
109
|
+
- Instruction file pre-flight: checkInstructionFilePreFlight() checks before new session creation (text/voice/photo). Shows ifc_ inline buttons if needed. PendingInstructionFileConfirm stored in StateManager (ephemeral). BridgeClient.checkInstructionFile() + createInstructionFile param on ensureSession/sendMessage.
|
|
78
110
|
|
|
79
111
|
### skills
|
|
80
112
|
- path: areas/skills.md
|
|
81
|
-
- updated: 2026-
|
|
82
|
-
- load-when: skills, commands, agents, hooks, slash commands, SKILL.md, scaffolding
|
|
113
|
+
- updated: 2026-03-14
|
|
114
|
+
- load-when: skills, commands, agents, hooks, slash commands, SKILL.md, scaffolding, store, cross-provider, convert-asset, notes, notes summarize, automation, kanban CLI, last_modified_by, updates, update delivery, npm, packages, slycode CLI, migrate, board, reorder, build pipeline, sync-updates, store-manifest, provider overlay, base-instructions, slycode config, slycode uninstall, tutorial project, card number, nextCardNumber, licensing, BUSL, open-core, skillMainOnly, STT_BACKEND, WHISPER_CLI_PATH, WHISPER_MODEL_PATH, timezone, TZ, create-slycode wizard, @slycode scope, @slycode/slycode, @slycode/create-slycode
|
|
83
115
|
- notes:
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
116
|
+
- ALL commands converted to skills. 17 skills + 1 agent (doc-updater) + 1 dummy skill (inert test). .claude/commands/ removed. Licensed under BUSL-1.1 (open-core).
|
|
117
|
+
- Store: 17 canonical skills (store/skills/) + actions (store/actions/*.md). Flat layout, no provider subdirectories.
|
|
118
|
+
- Update delivery: updates/ → accept → store/ (with backup) → deploy to projects. Actions use content-hash comparison + additive class merge.
|
|
119
|
+
- NPM: packages/slycode/ (CLI, 11 subcommands incl config + uninstall) + packages/create-slycode/ (scaffold). .agents/skills/ for Codex format.
|
|
120
|
+
- kanban.js: board, reorder, notes (add/list/search/edit/delete/clear/oldest/summarize), automation subcommands. stamps last_modified_by/source on writes. Notes: 100 hard cap, 30 soft suggestion threshold, summarize replaces oldest N with summary note. Archive safeguard: automation cards cannot be archived. Sequential card numbers: ensureCardNumbers() auto-backfills on first write, nextCardNumber tracked on kanban root. Kanban skill v1.4.0: multiline description example in docs. `automation enable` recalculates nextRun via croner.
|
|
121
|
+
- Scaffold: multi-provider, tutorial content seeded into workspace root (not separate slycode_tutorial/ subdirectory). Kanban seed uses stage-based format. Clean output: suppresses zero-count lines, reports new vs existing doc dirs. Setup wizard prompts for timezone (auto-detects, writes TZ= to .env). System service prompt skipped on Windows.
|
|
122
|
+
- NPM packages under `@slycode` scope: `@slycode/slycode` (v0.1.11), `@slycode/create-slycode` (v0.1.11). Template paths: `node_modules/@slycode/slycode/templates/`.
|
|
123
|
+
- Build pipeline: build-package.ts → sync-updates.ts (skills + actions) → copy scaffold-templates/ + store/ + updates/actions/ to dist/. Templates (skills, actions, tutorial-project) removed from packages/slycode/templates/ — build pipeline is sole delivery mechanism.
|
|
124
|
+
- Hooks: useSlyActionsConfig.ts (not useCommandsConfig.ts)
|
|
125
|
+
|
|
126
|
+
### feature-guide
|
|
127
|
+
- path: areas/feature-guide.md
|
|
128
|
+
- updated: 2026-03-14
|
|
129
|
+
|
|
130
|
+
- load-when: feature guide, feature reference, full scope, system overview, product overview, comprehensive reference, all features, complete reference, deep dive features, product messaging, value proposition, USP, positioning, user story, what is slycode, why slycode, target audience, marketing, website copy, README copy, onboarding copy, pricing, teams tier, per-card provider selection
|
|
131
|
+
- notes:
|
|
132
|
+
- Auto-maintained by automation card-1772101929502
|
|
133
|
+
- Comprehensive reference of every SlyCode feature, function, and behavior
|
|
134
|
+
- Use when needing full product scope for design docs, comparisons, or thorough analysis
|
|
135
|
+
- PROTECTED: documentation/features/042_slycode_product_messaging.md is the canonical product messaging framework. It defines SlyCode's positioning, value proposition, messaging pillars, target audience, pricing framing, and proof points. Load this document whenever product identity, messaging, marketing copy, or user-facing language is relevant. Do NOT remove or overwrite this reference during context priming updates.
|
|
89
136
|
|
|
90
137
|
### scripts-deployment
|
|
91
138
|
- path: areas/scripts-deployment.md
|
|
92
|
-
- updated: 2026-
|
|
93
|
-
- load-when: setup, scripts, deployment, start, stop, restart, dev, ports, service, systemd, launchd, linger, PID, zombie, sly-start, sly-stop, sly-dev, sly-restart, setup.sh, .env, environment, production, build, tmux, bridge-sessions, XDG_RUNTIME_DIR
|
|
139
|
+
- updated: 2026-03-14
|
|
140
|
+
- load-when: setup, scripts, deployment, start, stop, restart, dev, ports, service, systemd, launchd, linger, PID, zombie, sly-start, sly-stop, sly-dev, sly-restart, setup.sh, .env, environment, production, build, tmux, bridge-sessions, XDG_RUNTIME_DIR, build tools, gcc, npm, packages, slycode, create-slycode, migrate, build-package, sync-updates, store-manifest, SLYCODE_HOME, path resolution, getSlycodeRoot, getPackageDir, slycode.config.js, config, uninstall, DEV_HOSTNAME, legacy root env var, timezone, TZ
|
|
94
141
|
- notes:
|
|
95
142
|
- Two port ranges: dev (3003/4/5) and prod (7591/2/3 = "sly" on keypad)
|
|
96
143
|
- Stop by port, NOT PID files (npm spawns children, PIDs go stale)
|
|
97
144
|
- bridge-sessions.json is critical — crash on read errors, never silently wipe
|
|
98
145
|
- XDG_RUNTIME_DIR must be set for systemctl --user in code-server
|
|
99
|
-
-
|
|
146
|
+
- slycode.config.js: workspace-level config for ports, services, host. Loaded by config/loader.ts.
|
|
147
|
+
- Default host: 127.0.0.1. Only web binds to config.host; bridge+messaging always localhost.
|
|
148
|
+
- slycode CLI: 11 subcommands (workspace, start, stop, service, doctor, skills, sync, update, config, uninstall)
|
|
100
149
|
- sly-dev.sh tmux hook calls sly-stop.sh on session close to prevent zombies
|
|
101
150
|
- Global CLIs: sly-kanban, sly-messaging, sly-scaffold (symlinked to ~/bin)
|
|
151
|
+
- Build: build-package.ts preserves tutorial-project/ template during wipe/rebuild
|
|
152
|
+
- NPM packages: packages/slycode/ (v0.1.0 CLI) and packages/create-slycode/ (v0.1.0 scaffold)
|
|
153
|
+
- Tutorial v3: content seeded into workspace root (not slycode_tutorial/ subdir). Registry default project = workspace root.
|
|
154
|
+
- Path resolution simplified: legacy root env var env var removed. Resolution is now SLYCODE_HOME → cwd fallback only.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<!-- Last reviewed: 2026-03-
|
|
1
|
+
<!-- Last reviewed: 2026-03-14 -->
|
|
2
2
|
|
|
3
3
|
# SlyCode Feature Reference
|
|
4
4
|
|
|
5
|
-
> Auto-generated comprehensive reference. Last updated: 2026-03-
|
|
5
|
+
> Auto-generated comprehensive reference. Last updated: 2026-03-14
|
|
6
6
|
> Single source of truth for all SlyCode features, functions, and behaviors.
|
|
7
7
|
> NOT a user guide. Maximally information-dense AI reference document.
|
|
8
8
|
|
|
@@ -224,6 +224,7 @@ SlyCode CLI (npm package) <--> All services (start/stop/update/sync)
|
|
|
224
224
|
|
|
225
225
|
### Sly Action Config Modal (`SlyActionConfigModal.tsx`)
|
|
226
226
|
- Voice integration: registers assistant terminal with VoiceContext (`voiceTerminalId="action-assistant"`); `onTerminalReady` wires `registerTerminal`/`unregisterTerminal`
|
|
227
|
+
- Terminal context project name: `'SlyCode'` (was `'ClaudeMaster'`)
|
|
227
228
|
- Voice-aware dismiss: checks `voice.voiceState` from `useVoice()` context; won't close on outside-click while voice is busy
|
|
228
229
|
- Escape key: passes through to terminal uninterrupted when assistant panel is expanded (no longer closes assistant); only navigates back/closes when assistant is collapsed
|
|
229
230
|
- **Action updates integration**: accepts `actionUpdateCount` and `onShowActionUpdates` props; renders badge with pending count in header when > 0; clicking badge invokes `onShowActionUpdates` callback to open `ActionUpdatesModal`
|
|
@@ -267,6 +268,13 @@ SlyCode CLI (npm package) <--> All services (start/stop/update/sync)
|
|
|
267
268
|
- VoiceSettingsPopover: configurable shortcuts (Ctrl+., Space, Enter, Shift+Enter, Escape)
|
|
268
269
|
- FloatingVoiceWidget: always-visible mic button
|
|
269
270
|
|
|
271
|
+
### Transcribe API (`api/transcribe/route.ts`)
|
|
272
|
+
- **Dual STT backend**: `STT_BACKEND` env var selects backend; `'local'` uses local whisper.cpp, default `'openai'` uses OpenAI Whisper API
|
|
273
|
+
- **Local backend**: requires `WHISPER_CLI_PATH` (path to whisper-cli binary) and `WHISPER_MODEL_PATH` (path to .ggml model file); returns 401 if not configured
|
|
274
|
+
- **Local pipeline**: writes uploaded audio to temp file, converts to 16kHz mono WAV via `ffmpeg` (30s timeout), runs `whisper-cli` with `--no-timestamps --output-txt` (120s timeout), cleans up temp files in `finally` block
|
|
275
|
+
- **Env loading**: `loadEnv()` reads all `[A-Z_]+=` lines from root `.env` file (was `loadEnvKey()` reading only `OPENAI_API_KEY`); caches parsed values; sets `process.env` for keys not already present
|
|
276
|
+
- **Audio format detection**: determines extension from MIME type (`mp4`/`ogg`/`webm`); used for both backends
|
|
277
|
+
|
|
270
278
|
### Health Monitor (`HealthMonitor.tsx`)
|
|
271
279
|
- CPU%, Memory, Swap from /api/system-stats; terminal counts from /bridge/stats
|
|
272
280
|
- Green (<70%), Amber (70-90%), Critical (>=90%); "Stop All" with confirmation
|
|
@@ -343,7 +351,7 @@ SlyCode CLI (npm package) <--> All services (start/stop/update/sync)
|
|
|
343
351
|
| /api/projects/[id] | GET/PUT/DELETE | CRUD |
|
|
344
352
|
| /api/projects/reorder | POST | Reorder |
|
|
345
353
|
| /api/file | POST/GET | Upload (images) / read file content |
|
|
346
|
-
| /api/transcribe | POST | Whisper STT |
|
|
354
|
+
| /api/transcribe | POST | Whisper STT (OpenAI API or local whisper.cpp backend via STT_BACKEND env) |
|
|
347
355
|
| /api/settings | GET/PUT | Preferences |
|
|
348
356
|
| /api/areas | GET | Context-priming areas |
|
|
349
357
|
| /api/terminal-classes | GET | Terminal classes |
|
|
@@ -378,6 +386,7 @@ SlyCode CLI (npm package) <--> All services (start/stop/update/sync)
|
|
|
378
386
|
23. SSE-to-polling migration: sly-actions config consumers switched from SSE stream to 30s polling via `useSlyActionsConfig()` hook to conserve scarce HTTP/1.1 connection slots (6 per origin browser limit); SSE stream endpoint retained for backward compatibility
|
|
379
387
|
24. Action update acceptance: additive class merge preserves user customizations -- only adds new upstream classes to the store copy; records upstream content hash (not store hash) so class-merged store files don't trigger false future updates
|
|
380
388
|
25. Instruction file fallback: ClaudeTerminalPanel checks bridge for missing provider instruction files before session start; offers to auto-create from fallback source (e.g. copy provider template when project lacks CLAUDE.md)
|
|
389
|
+
26. Transcribe API env loading: `loadEnv()` reads parent `.env` (via `getSlycodeRoot()`) since Next.js only auto-loads `web/.env`; caches parsed values; STT_BACKEND, WHISPER_CLI_PATH, WHISPER_MODEL_PATH, OPENAI_API_KEY all resolved from this file
|
|
381
390
|
|
|
382
391
|
### Key Files
|
|
383
392
|
| File | Purpose |
|
|
@@ -418,6 +427,7 @@ SlyCode CLI (npm package) <--> All services (start/stop/update/sync)
|
|
|
418
427
|
| web/src/app/api/cli-assets/store/route.ts | Store import with skillMainOnly option |
|
|
419
428
|
| web/src/app/api/cli-assets/store/preview/route.ts | Skill file listing preview for import dialog |
|
|
420
429
|
| web/src/app/api/cli-assets/updates/route.ts | Unified updates API: skills + actions scan, accept, dismiss |
|
|
430
|
+
| web/src/app/api/transcribe/route.ts | Whisper STT: dual backend (OpenAI API / local whisper.cpp), env loading |
|
|
421
431
|
| web/src/app/api/sly-actions/invalidate/route.ts | Actions config cache invalidation |
|
|
422
432
|
| web/src/app/globals.css | Tokens, colors, priority-based glow keyframes, lane texture, automation textures |
|
|
423
433
|
| web/src/app/layout.tsx | Font loading (Geist Sans, Geist Mono, JetBrains Mono) |
|
|
@@ -707,11 +717,12 @@ AutomationConfig {
|
|
|
707
717
|
- No PTY kill needed for `creating` sessions (no PTY exists yet)
|
|
708
718
|
- `stopAllSessions()` includes `creating` in its status filter alongside `running`/`detached`
|
|
709
719
|
- On stop: session deleted from in-memory `sessions` Map to free the slot; session data preserved in `persistedState` for future resume; `getSessionInfo()` falls back to `persistedState` when not in the Map
|
|
720
|
+
- `hasHistory` in session info: true only when `claudeSessionId` exists (not just persisted state presence) — sessions that never detected a GUID show `hasHistory: false`
|
|
710
721
|
|
|
711
722
|
### Provider Session Detection
|
|
712
723
|
| Provider | Dir | Resume |
|
|
713
724
|
|----------|-----|--------|
|
|
714
|
-
| Claude | ~/.claude/projects/-{cwd}/ | --resume {guid} |
|
|
725
|
+
| Claude | ~/.claude/projects/-{cwd}/ (path chars `/ _ \ :` → `-`) | --resume {guid} |
|
|
715
726
|
| Codex | ~/.codex/sessions/YYYY/MM/DD/ | codex resume {guid} |
|
|
716
727
|
| Gemini | ~/.gemini/tmp/{SHA256}/chats/ | --resume |
|
|
717
728
|
- Before/after file list; poll 200ms; live `getClaimedGuids()` check per iteration
|
|
@@ -807,7 +818,7 @@ AutomationConfig {
|
|
|
807
818
|
| bridge/src/websocket.ts | WS heartbeat |
|
|
808
819
|
| bridge/src/pty-handler.ts | PTY ops |
|
|
809
820
|
| bridge/src/provider-utils.ts | Command building, instruction file check/ensure, provider config cache |
|
|
810
|
-
| bridge/src/claude-utils.ts | Session detection |
|
|
821
|
+
| bridge/src/claude-utils.ts | Session detection, Claude project dir path transformation (cross-platform) |
|
|
811
822
|
| bridge/src/screenshot-utils.ts | Image handling |
|
|
812
823
|
| data/providers.json | Provider definitions (commands, flags, instruction files, defaults) |
|
|
813
824
|
|
|
@@ -822,7 +833,7 @@ AutomationConfig {
|
|
|
822
833
|
|
|
823
834
|
### Message Flow
|
|
824
835
|
- Text: authorize -> route -> format -> instructionFilePreFlight -> bridge.sendMessage -> watchActivity
|
|
825
|
-
- Voice: OGG -> Whisper
|
|
836
|
+
- Voice: OGG -> STT (OpenAI Whisper API or local whisper.cpp) -> text with [Telegram/Voice] header -> instructionFilePreFlight -> bridge
|
|
826
837
|
- Photo: batch by media_group_id (2s) -> bridge.sendImage -> [Screenshot: ...] -> instructionFilePreFlight -> bridge
|
|
827
838
|
- Outbound: cli.ts send -> POST /send or /voice -> channel
|
|
828
839
|
|
|
@@ -871,7 +882,13 @@ AutomationConfig {
|
|
|
871
882
|
- Quick command callback (`qc_` prefix): inline button -> `executeQuickCommand()` -> resolves prompt -> sends to bridge
|
|
872
883
|
|
|
873
884
|
### Voice
|
|
874
|
-
- STT
|
|
885
|
+
- **STT backend selection**: `STT_BACKEND` env var — `openai` (default) or `local`
|
|
886
|
+
- **OpenAI path**: OGG -> OpenAI Whisper v1 API -> text (requires `OPENAI_API_KEY`)
|
|
887
|
+
- **Local whisper.cpp path**: OGG -> ffmpeg (16kHz mono WAV) -> whisper-cli -> text (requires `WHISPER_CLI_PATH`, `WHISPER_MODEL_PATH`; 120s timeout)
|
|
888
|
+
- `stt.ts` exports: `transcribeAudio(filePath, SttConfig)`, `validateSttConfig(SttConfig)` — routes to `transcribeOpenAI()` or `transcribeLocal()` internally
|
|
889
|
+
- `SttConfig { backend, openaiApiKey, whisperCliPath, whisperModelPath }` — validated before transcription; errors surfaced to user
|
|
890
|
+
- `VoiceConfig` (types.ts): added `sttBackend`, `whisperCliPath`, `whisperModelPath` fields
|
|
891
|
+
- Startup log shows backend-specific STT status (local: validates CLI/model paths; openai: checks API key)
|
|
875
892
|
- TTS: ElevenLabs v3 (eleven_v3, stability=0.5, similarity=0.75) -> MP3 -> ffmpeg libopus -> OGG
|
|
876
893
|
- Search: /v2/voices + /v1/shared-voices parallel
|
|
877
894
|
|
|
@@ -912,13 +929,13 @@ AutomationConfig {
|
|
|
912
929
|
| messaging/src/state.ts | Navigation, voice, mode, pending instruction file state |
|
|
913
930
|
| messaging/src/bridge-client.ts | Sessions, activity, checkInstructionFile, ensureSession, getProjectSessions |
|
|
914
931
|
| messaging/src/channels/telegram.ts | Polling, keyboards |
|
|
915
|
-
| messaging/src/stt.ts |
|
|
932
|
+
| messaging/src/stt.ts | Dual-backend STT: OpenAI Whisper API or local whisper.cpp, SttConfig, validateSttConfig |
|
|
916
933
|
| messaging/src/tts.ts | ElevenLabs TTS |
|
|
917
934
|
| messaging/src/voices.ts | Voice search (personal + shared) |
|
|
918
935
|
| messaging/src/sly-action-filter.ts | Action scanning from store/actions/*.md, filtering, template resolution |
|
|
919
936
|
| messaging/src/kanban-client.ts | Board loading |
|
|
920
937
|
| messaging/src/cli.ts | Send messages |
|
|
921
|
-
| messaging/src/types.ts | All shared types (Channel, SlyActionConfig, InstructionFileCheck, PendingInstructionFileConfirm, BridgeCreateSessionRequest, BridgeSessionInfo) |
|
|
938
|
+
| messaging/src/types.ts | All shared types (Channel, VoiceConfig, SlyActionConfig, InstructionFileCheck, PendingInstructionFileConfirm, BridgeCreateSessionRequest, BridgeSessionInfo) |
|
|
922
939
|
| documentation/features/049_per_card_provider_selection.md | Per-card provider selection feature spec |
|
|
923
940
|
|
|
924
941
|
---
|
|
@@ -927,6 +944,7 @@ AutomationConfig {
|
|
|
927
944
|
|
|
928
945
|
### CLI (packages/slycode/)
|
|
929
946
|
- Entry: bin/slycode.js (Node v20+); 9 lazy-loaded subcommands
|
|
947
|
+
- Package metadata: author `Greg Atkins <support@slycode.ai>`, license BUSL-1.1, repo `slycode-ai/slycode`; both packages publish author, repository, homepage, bugs fields
|
|
930
948
|
|
|
931
949
|
### Commands
|
|
932
950
|
| Command | Key Logic |
|
|
@@ -954,9 +972,10 @@ AutomationConfig {
|
|
|
954
972
|
|
|
955
973
|
### Create-SlyCode
|
|
956
974
|
- `npx create-slycode [dir] [--yes]`
|
|
957
|
-
- Setup wizard: network binding (localhost vs 0.0.0.0), ports, Telegram token/userId, voice keys (OpenAI/ElevenLabs), system service
|
|
975
|
+
- Setup wizard: timezone (auto-detects via `Intl.DateTimeFormat`, writes `TZ=` to .env for cron scheduling), network binding (localhost vs 0.0.0.0), ports, Telegram token/userId, voice keys (OpenAI/ElevenLabs), system service
|
|
958
976
|
- Existing workspace detection: warns if ~/.slycode/config.json points elsewhere; offers continue or cancel
|
|
959
|
-
- Creates: package.json, slycode.config.js, .env (
|
|
977
|
+
- Creates: package.json, slycode.config.js, .env (sections: Timezone `TZ=`, Ports, Telegram, Voice STT/TTS), .gitignore
|
|
978
|
+
- `--yes` auto-accepts defaults: detected system timezone, host 0.0.0.0, ports 7591/2/3, no integrations, no service
|
|
960
979
|
- Seeds: commands.json (empty), registry.json (single tutorial project), providers.json from package templates
|
|
961
980
|
- **Actions now individual MD files**: `deployStoreActions()` copies `store/actions/*.md` from package templates (replaces old sly-actions.json seeding); each action is a standalone markdown file with YAML frontmatter + prompt body
|
|
962
981
|
- Kanban seed: `{project_id: 'slycode', stages: {backlog:[], design:[], ...}, last_updated}` (overwritten by tutorial seed if template available)
|
|
@@ -1006,7 +1025,9 @@ AutomationConfig {
|
|
|
1006
1025
|
| packages/slycode/src/cli/workspace.ts | Workspace resolution, config loading |
|
|
1007
1026
|
| packages/slycode/src/cli/service.ts | Platform services |
|
|
1008
1027
|
| packages/slycode/src/cli/uninstall.ts | Clean removal |
|
|
1009
|
-
| packages/create-slycode/src/index.ts | Scaffold wizard; deploys store actions as individual MD files |
|
|
1028
|
+
| packages/create-slycode/src/index.ts | Scaffold wizard; timezone prompt, deploys store actions as individual MD files |
|
|
1029
|
+
| packages/create-slycode/package.json | Package metadata: author, repository (directory: packages/create-slycode), homepage, bugs |
|
|
1030
|
+
| packages/slycode/package.json | Package metadata: author, repository, homepage, bugs |
|
|
1010
1031
|
| packages/slycode/templates/CLAUDE.md | Workspace CLAUDE.md (tutorial mode section) |
|
|
1011
1032
|
| packages/slycode/templates/store/actions/*.md | Action prompt templates (individual MD files with YAML frontmatter) |
|
|
1012
1033
|
| packages/slycode/templates/tutorial-project/ | Tutorial content template |
|
|
@@ -1038,8 +1059,8 @@ AutomationConfig {
|
|
|
1038
1059
|
| reference-fetch | 1.1.1 | Doc retrieval |
|
|
1039
1060
|
| doc-discovery | 1.0.1 | Doc gap analysis |
|
|
1040
1061
|
| doc-update | 1.0.1 | Doc maintenance |
|
|
1041
|
-
| claude-code-docs-maintainer | 1.0.1 | Claude Code docs |
|
|
1042
|
-
| convert-asset | 1.0.0 | Cross-provider conversion |
|
|
1062
|
+
| claude-code-docs-maintainer | 1.0.1 | Claude Code docs; references SlyCode repository (was ClaudeMaster); relative doc paths |
|
|
1063
|
+
| convert-asset | 1.0.0 | Cross-provider conversion; scope now global (was project-specific) |
|
|
1043
1064
|
| create-command | 1.0.1 | Slash commands |
|
|
1044
1065
|
| problem_summary | 1.0.1 | Issue summary |
|
|
1045
1066
|
|
|
@@ -1071,21 +1092,22 @@ AutomationConfig {
|
|
|
1071
1092
|
### Terminal Actions (Markdown Format, 26 Commands)
|
|
1072
1093
|
- **Migration from JSON to markdown**: `data/sly-actions.json` archived to `data/archive/sly-actions.json.archived`; conversion script `scripts/convert-actions-to-md.js` (one-time)
|
|
1073
1094
|
- **Format**: individual `store/actions/<name>.md` files with YAML frontmatter + prompt body (see action-assistant-context.md for full spec)
|
|
1074
|
-
- **Frontmatter fields**: name, version, label, description, group, placement, scope, projects, cardTypes, classes (map of terminal-class -> sort priority)
|
|
1095
|
+
- **Frontmatter fields**: name, version, label, description, group, placement, scope (global or specific), projects, cardTypes, classes (map of terminal-class -> sort priority)
|
|
1075
1096
|
- **Scanning**: both web (`action-scanner.ts`) and messaging (`sly-action-filter.ts`) scan `store/actions/*.md` independently; both parse YAML frontmatter with lightweight parsers (no YAML lib); both use 30s in-memory cache
|
|
1076
1097
|
- **Class assignments**: derived from per-action `classes` map (reverse of old top-level `classAssignments` array); priority numbers with gaps of 10 for insertion; ties broken alphabetically
|
|
1077
1098
|
- Placement: startup, toolbar, both
|
|
1078
|
-
- Groups (5): Card Actions (14), Session (
|
|
1099
|
+
- Groups (5): Card Actions (14), Session (2), Project (4), Utilities (5), Action Assistant (1)
|
|
1079
1100
|
- Classes (9): global-terminal, project-terminal, backlog, design, implementation, testing, done, automation, action-assistant
|
|
1080
1101
|
- Templates: `{{var}}` mustache-style (cardContext, projectContext, globalContext context blocks + field-level card/project/stage/projectPath)
|
|
1081
1102
|
- Context injection is opt-in: actions must include `{{cardContext}}` etc. in prompt body
|
|
1082
1103
|
- MAX_VISIBLE_ACTIONS=6; Shift+click inserts without submit
|
|
1083
1104
|
- All command prompts use `sly-kanban` CLI (not `node scripts/kanban.js`)
|
|
1084
1105
|
- `data/action-assistant-context.md`: comprehensive reference for the action assistant (format spec, template variables, workflow diagram, common mistakes, learned patterns)
|
|
1106
|
+
- **convert-asset**: scope changed from `specific` (claude-master only) to `global` — available in all workspaces
|
|
1085
1107
|
|
|
1086
1108
|
### Terminal Action Commands
|
|
1087
1109
|
- **Card Actions** (14): onboard, design-requirements, deep-design, make-feature, implement, quick-fix, debug, complete, review, approve, archive, chore, analyse-implementation, test-review
|
|
1088
|
-
- **Session** (
|
|
1110
|
+
- **Session** (2): summarize, continue
|
|
1089
1111
|
- **Project** (4): explore, create-card, update-priming, organise-backlog
|
|
1090
1112
|
- **Utilities** (5): clear, checkpoint, context, show-card, convert-asset
|
|
1091
1113
|
- **Action Assistant** (1): configure-commands
|
|
@@ -1100,9 +1122,11 @@ AutomationConfig {
|
|
|
1100
1122
|
|
|
1101
1123
|
### Store (Canonical Flat)
|
|
1102
1124
|
- store/skills/ (17 dirs, includes dummy), store/actions/ (26 .md files), store/agents/, store/mcp/, store/.backups/
|
|
1125
|
+
- **Renaming**: all store assets updated from "ClaudeMaster" to "SlyCode" references (skills, backups, area refs); doc paths normalized to relative (was Windows absolute in claude-code-docs-maintainer)
|
|
1126
|
+
- Store skills include full reference subdirectories: `store/skills/context-priming/references/references/areas/{skills,scripts-deployment}.md` (distributed to new workspaces); `updates/skills/` mirrors same structure
|
|
1103
1127
|
- Update flow: updates/ -> accept -> backup -> overwrite store/ -> deploy
|
|
1104
1128
|
- Template skill versions (in updates/): context-priming v1.1.8, kanban v1.4.0, chore v1.1.1 (all include `provider: claude` frontmatter)
|
|
1105
|
-
- Manifest:
|
|
1129
|
+
- Manifest: 8 skills (context-priming, checkpoint, chore, feature, implement, design, kanban, messaging)
|
|
1106
1130
|
- Ignored: store/.ignored-updates.json (tracks both skills and actions by content hash)
|
|
1107
1131
|
- Hook: useSlyActionsConfig.ts (renamed from useCommandsConfig.ts)
|
|
1108
1132
|
- **Import preview**: `GET /api/cli-assets/store/preview` lists all files in a skill directory before import (params: provider, assetType, assetName, sourceProjectId); returns `{ files: string[], isDirectory: boolean }`
|
|
@@ -1128,6 +1152,8 @@ provider (claude|codex|gemini), name, version (semver), updated (YYYY-MM-DD), de
|
|
|
1128
1152
|
| .claude/skills/context-priming/references/area-index.md | Area index (7 areas, load-when triggers, notes) |
|
|
1129
1153
|
| .claude/skills/context-priming/references/areas/*.md | Deep reference per area |
|
|
1130
1154
|
| .claude/skills/context-priming/references/maintenance.md | Defrag, pruning, area separation doctrine |
|
|
1155
|
+
| store/skills/claude-code-docs-maintainer/SKILL.md | Claude Code docs skill (SlyCode refs, relative paths) |
|
|
1156
|
+
| store/skills/context-priming/references/ | Store copy of context-priming area refs (SlyCode-renamed) |
|
|
1131
1157
|
| store/actions/*.md | Individual action files (26), YAML frontmatter + prompt body |
|
|
1132
1158
|
| data/action-assistant-context.md | Action assistant reference (format spec, template variables, workflow, learned patterns) |
|
|
1133
1159
|
| data/archive/sly-actions.json.archived | Archived legacy JSON format (migrated to store/actions/*.md) |
|