@slycode/slycode 0.1.19 → 0.2.0

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.
Files changed (89) hide show
  1. package/dist/web/.next/BUILD_ID +1 -1
  2. package/dist/web/.next/build-manifest.json +2 -2
  3. package/dist/web/.next/server/app/_global-error.html +2 -2
  4. package/dist/web/.next/server/app/_global-error.rsc +1 -1
  5. package/dist/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  6. package/dist/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  7. package/dist/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  8. package/dist/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  9. package/dist/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/dist/web/.next/server/app/_not-found.html +1 -1
  11. package/dist/web/.next/server/app/_not-found.rsc +1 -1
  12. package/dist/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  13. package/dist/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  14. package/dist/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  15. package/dist/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  16. package/dist/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  17. package/dist/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  18. package/dist/web/.next/server/app/page_client-reference-manifest.js +1 -1
  19. package/dist/web/.next/server/app/project/[id]/page_client-reference-manifest.js +1 -1
  20. package/dist/web/.next/server/chunks/[root-of-the-server]__46b023d4._.js +1 -1
  21. package/dist/web/.next/server/chunks/[root-of-the-server]__4c7995bf._.js +1 -1
  22. package/dist/web/.next/server/chunks/[root-of-the-server]__4d0d3464._.js +1 -1
  23. package/dist/web/.next/server/chunks/[root-of-the-server]__543058c2._.js +3 -3
  24. package/dist/web/.next/server/chunks/[root-of-the-server]__6d330d40._.js +1 -1
  25. package/dist/web/.next/server/chunks/[root-of-the-server]__884d73e4._.js +1 -1
  26. package/dist/web/.next/server/chunks/[root-of-the-server]__949bb248._.js +1 -1
  27. package/dist/web/.next/server/chunks/[root-of-the-server]__949d814c._.js +1 -1
  28. package/dist/web/.next/server/chunks/[root-of-the-server]__aa814a86._.js +1 -1
  29. package/dist/web/.next/server/chunks/[root-of-the-server]__ad64e04f._.js +2 -2
  30. package/dist/web/.next/server/chunks/[root-of-the-server]__baa99257._.js +1 -1
  31. package/dist/web/.next/server/chunks/[root-of-the-server]__bbb4b3ac._.js +1 -1
  32. package/dist/web/.next/server/chunks/[root-of-the-server]__bf286c26._.js +1 -1
  33. package/dist/web/.next/server/chunks/[root-of-the-server]__ce429522._.js +1 -1
  34. package/dist/web/.next/server/chunks/[root-of-the-server]__d38c7a96._.js +1 -1
  35. package/dist/web/.next/server/chunks/[root-of-the-server]__e9b0e744._.js +1 -1
  36. package/dist/web/.next/server/chunks/[root-of-the-server]__f1fe18e6._.js +2 -2
  37. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__677b7660._.js +1 -1
  38. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__79c0188d._.js +1 -1
  39. package/dist/web/.next/server/chunks/ssr/src_lib_registry_ts_2fc87c9c._.js +1 -1
  40. package/dist/web/.next/server/pages/404.html +1 -1
  41. package/dist/web/.next/server/pages/500.html +2 -2
  42. package/dist/web/.next/static/chunks/7660448872d80e27.js +4 -0
  43. package/dist/web/.next/static/chunks/{49ff6bc5c5e30161.js → b694f741bb34ac84.js} +1 -1
  44. package/dist/web/src/components/ClaudeTerminalPanel.tsx +4 -0
  45. package/dist/web/src/lib/store-scanner.ts +70 -10
  46. package/dist/web/tsconfig.tsbuildinfo +1 -1
  47. package/package.json +1 -1
  48. package/templates/kanban-seed.json +1 -1
  49. package/dist/store/.backups/actions/onboard.md +0 -33
  50. package/dist/store/.backups/actions/review.md +0 -37
  51. package/dist/store/.backups/actions/show-card.md +0 -20
  52. package/dist/store/.backups/checkpoint/SKILL.md +0 -43
  53. package/dist/store/.backups/context-priming/SKILL.md +0 -153
  54. package/dist/store/.backups/context-priming/references/area-index.md +0 -101
  55. package/dist/store/.backups/context-priming/references/areas/claude-actions.md +0 -120
  56. package/dist/store/.backups/context-priming/references/areas/messaging.md +0 -177
  57. package/dist/store/.backups/context-priming/references/areas/scripts-deployment.md +0 -138
  58. package/dist/store/.backups/context-priming/references/areas/skills.md +0 -135
  59. package/dist/store/.backups/context-priming/references/areas/terminal-bridge.md +0 -232
  60. package/dist/store/.backups/context-priming/references/areas/web-frontend.md +0 -252
  61. package/dist/store/.backups/context-priming/references/maintenance.md +0 -128
  62. package/dist/store/.ignored-updates.json +0 -37
  63. package/dist/store/actions/analyse-implementation.md +0 -72
  64. package/dist/store/actions/archive.md +0 -36
  65. package/dist/store/actions/clear.md +0 -13
  66. package/dist/store/actions/complete.md +0 -34
  67. package/dist/store/actions/continue.md +0 -20
  68. package/dist/store/agents/doc-updater.md +0 -619
  69. package/dist/store/mcp/context7.json +0 -8
  70. package/dist/store/skills/claude-code-docs-maintainer/SKILL.md +0 -168
  71. package/dist/store/skills/create-command/SKILL.md +0 -92
  72. package/dist/store/skills/doc-discovery/SKILL.md +0 -18
  73. package/dist/store/skills/doc-update/SKILL.md +0 -15
  74. package/dist/store/skills/dummy/SKILL.md +0 -22
  75. package/dist/store/skills/interactive-explainer/SKILL.md +0 -557
  76. package/dist/store/skills/interactive-explainer/assets/base_template.html +0 -780
  77. package/dist/store/skills/interactive-explainer/references/design_patterns.md +0 -486
  78. package/dist/store/skills/interactive-explainer/references/visualization_libraries.md +0 -512
  79. package/dist/store/skills/problem_summary/SKILL.md +0 -11
  80. package/dist/store/skills/reference-fetch/SKILL.md +0 -206
  81. package/dist/store/skills/skill-creator/LICENSE.txt +0 -202
  82. package/dist/store/skills/skill-creator/SKILL.md +0 -246
  83. package/dist/store/skills/skill-creator/scripts/init_skill.py +0 -303
  84. package/dist/store/skills/skill-creator/scripts/package_skill.py +0 -110
  85. package/dist/store/skills/skill-creator/scripts/quick_validate.py +0 -65
  86. package/dist/web/.next/static/chunks/600359dcf0f0daac.js +0 -4
  87. /package/dist/web/.next/static/{ilZDkIBsZqGYxOIGxgcnT → BbBq5FNe-sYRKe8Pc24UW}/_buildManifest.js +0 -0
  88. /package/dist/web/.next/static/{ilZDkIBsZqGYxOIGxgcnT → BbBq5FNe-sYRKe8Pc24UW}/_clientMiddlewareManifest.json +0 -0
  89. /package/dist/web/.next/static/{ilZDkIBsZqGYxOIGxgcnT → BbBq5FNe-sYRKe8Pc24UW}/_ssgManifest.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slycode/slycode",
3
- "version": "0.1.19",
3
+ "version": "0.2.0",
4
4
  "description": "AI-powered development workspace with kanban, terminal bridge, and skill management",
5
5
  "bin": {
6
6
  "slycode": "bin/slycode.js",
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "cards": [],
4
- "lastUpdated": "2026-03-15T06:30:37.282Z"
4
+ "lastUpdated": "2026-03-15T07:08:19.486Z"
5
5
  }
@@ -1,33 +0,0 @@
1
- ---
2
- name: onboard
3
- version: 1.0.0
4
- label: "Onboard"
5
- description: "Analyze and improve a backlog item, then move to design"
6
- group: "Card Actions"
7
- placement: both
8
- scope: global
9
- classes:
10
- backlog: 10
11
- ---
12
-
13
- Onboard this backlog item. Analyze it, improve it, and move it to design.
14
-
15
- **First, get the full card details:**
16
- ```bash
17
- sly-kanban show {{card.id}}
18
- ```
19
-
20
- **Then do this:**
21
- 1. Analyze the card - understand the intent from title and description
22
- 2. Improve the title - make it clear, concise, action-oriented
23
- 3. Rewrite the description - structure logically, capture the essential gist
24
- 4. Set appropriate areas (run `sly-kanban areas` to see options)
25
- 4.5 Potentially use context-priming to understand that area better
26
- 5. Set correct type and priority
27
- 6. Apply all changes with `sly-kanban update {{card.id}} --title "..." --description "..." --areas "..." --type ... --priority ...`
28
- 7. Move to design: `sly-kanban move {{card.id}} design`
29
-
30
- **Then explain:**
31
- - What you understood the intent to be
32
- - What changes you made and why
33
- - Ask for confirmation - if I disagree, I'll tell you what to adjust
@@ -1,37 +0,0 @@
1
- ---
2
- name: review
3
- version: 1.0.0
4
- label: "Review Code"
5
- description: "Review the implementation for code quality"
6
- group: "Card Actions"
7
- placement: startup
8
- scope: global
9
- classes:
10
- testing: 20
11
- ---
12
-
13
- {{cardContext}}
14
-
15
- ---
16
-
17
- ## Your Task
18
-
19
- Review the implementation for this card.
20
-
21
- > Card details are provided above. If you need checklist status, notes from prior sessions, or problem IDs, run `sly-kanban show {{card.id}}` before proceeding.
22
-
23
- **Context priming:** If you haven't already, use `/context-priming` with the card's **Areas** to understand the codebase patterns and review the changes in context.
24
-
25
- **Review checklist:**
26
- 1. Code quality and best practices
27
- 2. Potential bugs or edge cases
28
- 3. Performance considerations
29
- 4. Security concerns
30
- 5. Documentation/comments adequate?
31
-
32
- **Log any issues found:**
33
- ```bash
34
- sly-kanban problem {{card.id}} add "description" --severity <minor|major|critical>
35
- ```
36
-
37
- **Summary:** Overall assessment and any required changes before approval.
@@ -1,20 +0,0 @@
1
- ---
2
- name: show-card
3
- version: 1.0.0
4
- label: "Show Card"
5
- description: "Display full card details"
6
- group: "Utilities"
7
- placement: both
8
- scope: global
9
- classes:
10
- backlog: 30
11
- design: 80
12
- done: 40
13
- implementation: 70
14
- testing: 70
15
- ---
16
-
17
- Show the full details of this card:
18
- ```bash
19
- sly-kanban show {{card.id}}
20
- ```
@@ -1,43 +0,0 @@
1
- ---
2
- provider: claude
3
- version: 1.2.0
4
- updated: 2026-02-01
5
- allowed-tools: Bash, Read
6
- argument-hint: [optional commit message]
7
- description: Create a git checkpoint of ALL recent changes
8
- ---
9
-
10
- # Git Checkpoint Creation
11
-
12
- Create a checkpoint commit of ALL uncommitted changes in the repository.
13
-
14
- ## Process
15
-
16
- 1. **Check status**: Run `git status --short` to see all changes
17
- 2. **Analyze changes**: For each modified/added file, briefly review what changed using `git diff <file> | head -50` or read new files
18
- 3. **Stage everything**: Run `git add -A` to stage ALL changes (modified, new, and deleted files)
19
- 4. **Write commit message**: Based on analysis, write a clear commit message that:
20
- - Has a concise summary line (under 72 chars)
21
- - Lists key changes as bullet points
22
- - Groups related changes together
23
- 5. **Commit**: Create the commit with the message
24
-
25
- ## Important Rules
26
-
27
- - **Commit EVERYTHING**: Do not selectively pick files. All uncommitted changes should be included.
28
- - **Analyze first**: Read diffs or file contents to understand what changed before writing the commit message.
29
- - **Be descriptive**: The commit message should explain WHAT was done, not just list file names.
30
- - **No AI attribution**: Do not include "Co-Authored-By: Claude" or similar.
31
-
32
- ## Example Commit Message Format
33
-
34
- ```
35
- Summary of changes in imperative mood
36
-
37
- - Add feature X with support for Y
38
- - Fix bug in Z where condition was wrong
39
- - Update config to enable new option
40
- - Refactor module for better performance
41
- ```
42
-
43
- If an optional message argument is provided, use it as the summary line.
@@ -1,153 +0,0 @@
1
- ---
2
- provider: claude
3
- name: context-priming
4
- version: 1.1.0
5
- updated: 2026-02-14
6
- description: Dynamic context provider for codebase knowledge. This skill should be used when working on code, answering questions about architecture, or making changes that require understanding of project structure. Maintains area-specific reference files that are loaded on demand. Self-updating based on observed drift between references and actual code. Load this skill early in work sessions - it contains essential workflow and update protocols.
7
- ---
8
-
9
- # Context Priming
10
-
11
- Provide dynamic, accurate context about this project's architecture and code. Load knowledge on demand, update when drift is observed, self-improve based on experience.
12
-
13
- ## When to Invoke
14
-
15
- **Load context when:**
16
- - Starting work requiring codebase knowledge not in current conversation
17
- - Making changes to unfamiliar areas
18
- - Answering questions about project architecture or patterns
19
- - User asks about functionality and current context is insufficient
20
-
21
- **Do NOT load when:**
22
- - Information is clearly present from last 3-5 exchanges
23
- - Task is trivial and doesn't require architectural understanding
24
- - Already loaded relevant areas in this session (unless significant time/work has passed)
25
-
26
- ## How to Use
27
-
28
- 1. **Load area-index.md first** - understand available areas, their update dates, load-when triggers
29
- 2. **Load relevant area(s)** - based on current task and index guidance
30
- 3. **Follow area's "when to expand"** - each area indicates when to open specific files
31
- 4. **Evaluate freshness** - compare area's `updated` date against today (from system prompt); consider git activity if concerned
32
-
33
- ## Callouts
34
-
35
- Prefix operational updates with `Priming:` to signal skill activity. Keep brief - one line.
36
-
37
- **When to call out:**
38
- - Loading an area: `Priming: Loading backend - API work detected.`
39
- - Loading multiple: `Priming: This spans backend and database areas, loading both.`
40
- - Staleness concern: `Priming: backend looks stale (Nov 20), will verify as I go.`
41
- - Making a note: `Priming: Quick note added - auth order matters.`
42
- - Skipping load: `Priming: Already have frontend context from earlier.`
43
-
44
- **Don't call out:** Every file read, minor internal decisions, routine checks.
45
-
46
- ## Update Behavior
47
-
48
- | Situation | Action |
49
- |-----------|--------|
50
- | Loaded info contradicts code in misleading way | Update reference in stride |
51
- | Minor drift, no practical impact | Let it slide |
52
- | Unsure if update needed | Note concern, ask at end of task |
53
- | Multiple areas need restructuring | Consult user before proceeding |
54
- | New feature added affecting an area | Update area reference |
55
- | User says "context priming needs to know this" | Capture in relevant area |
56
- | User says "you should have known this" | Analyze failure, propose fix (see below) |
57
-
58
- **Small updates**: Make concisely, in stride, no announcement needed.
59
- **Large restructuring/defrag**: Consult first. See `references/maintenance.md`.
60
-
61
- ## "You Should Have Known" Response
62
-
63
- When user indicates priming failed:
64
-
65
- 1. **Identify cause**: Which of these?
66
- - Area not loaded when it should have been (bad load-when criteria)
67
- - Area loaded but info missing (incomplete reference)
68
- - Info existed but outdated (stale reference)
69
- - Area doesn't exist (missing area)
70
- - Judgment call to skip loading was wrong (bad heuristic)
71
-
72
- 2. **Propose fix** based on cause:
73
- - Content/index updates → do in stride
74
- - SKILL.md or maintenance.md changes → explain problem, propose change, await approval
75
-
76
- 3. **Surface immediately** - don't wait for task end. User will indicate if disruptive.
77
-
78
- ## Permission Model
79
-
80
- | File | Permission |
81
- |------|------------|
82
- | references/areas/*.md | Update in stride |
83
- | references/area-index.md | Update in stride |
84
- | Add/remove/split areas | Suggest, light confirmation |
85
- | SKILL.md | Explain, propose, await approval |
86
- | references/maintenance.md | Explain, propose, await approval |
87
-
88
- ## Git Usage
89
-
90
- Use `git diff` or `git log` sparingly:
91
- - Before major refactors to verify scope
92
- - When user questions accuracy of loaded info
93
- - To check activity since area's last update date when staleness suspected
94
-
95
- Not for routine small changes.
96
-
97
- ## Context Compaction
98
-
99
- No direct visibility into remaining context space. When user flags compaction is imminent, or after long exploration sessions: consider if valuable learnings should be captured before context is summarized.
100
-
101
- ## Self-Improvement
102
-
103
- Area notes (in area-index.md) capture learnings:
104
- - Up to 10 notes per area, quality over quantity
105
- - Format: actionable guidance ("when X, do Y" or "don't assume Z")
106
- - Remove notes that no longer apply
107
- - If skill behavior is flawed, suggest improvement to user
108
-
109
- If suggestion timing/frequency becomes disruptive, user will indicate - adjust accordingly.
110
-
111
- ## Operational Principles
112
-
113
- - Concise updates: prefer short phrase tweaks over paragraph additions
114
- - Don't bloat references - information density is the goal
115
- - When on fence about loading, lean toward loading
116
- - Trust the index's load-when triggers; refine them when wrong
117
- - No hardcoded "status" - freshness is evaluated dynamically
118
-
119
- ## Skill Location & Cross-Provider Note
120
-
121
- **Canonical path (relative to project root):**
122
- ```
123
- .claude/skills/context-priming/
124
- ├── SKILL.md # This file
125
- ├── references/
126
- │ ├── area-index.md # Index of all areas (load first)
127
- │ ├── maintenance.md # Defrag, pruning, area separation doctrine
128
- │ └── areas/
129
- │ └── [name].md # Deep reference per area
130
- ```
131
-
132
- **Resolution order — try these paths in order, use the first that exists:**
133
-
134
- 1. **Primary:** `<project-root>/.claude/skills/context-priming/` — the canonical, most up-to-date copy. Always check here first.
135
- 2. **Fallback:** The directory containing this SKILL.md (i.e. your own skill folder). If there is no `.claude/` directory in the project, the references were likely copied alongside this file.
136
-
137
- This matters when the skill is deployed to another provider (Codex at `.agents/skills/`, Gemini at `.gemini/skills/`). Those folders may contain just this SKILL.md for discovery, with the area files living in `.claude/`. But if the project has no `.claude/` directory at all (e.g. a pure Codex or Gemini project), fall back to reading from your own skill directory.
138
-
139
- **Resolved paths (primary):**
140
- - **Area index:** `<project-root>/.claude/skills/context-priming/references/area-index.md`
141
- - **Area files:** `<project-root>/.claude/skills/context-priming/references/areas/<name>.md`
142
- - **Maintenance:** `<project-root>/.claude/skills/context-priming/references/maintenance.md`
143
-
144
- **Resolved paths (fallback — relative to this SKILL.md):**
145
- - **Area index:** `./references/area-index.md`
146
- - **Area files:** `./references/areas/<name>.md`
147
- - **Maintenance:** `./references/maintenance.md`
148
-
149
- ## Files
150
-
151
- - `references/area-index.md` - compact index of all areas
152
- - `references/maintenance.md` - defrag, pruning, area separation doctrine
153
- - `references/areas/[name].md` - deep reference per area
@@ -1,101 +0,0 @@
1
- # Area Index
2
-
3
- Updated: 2026-02-14
4
-
5
- ## Areas
6
-
7
- ### web-frontend
8
- - path: areas/web-frontend.md
9
- - updated: 2026-02-14
10
- - load-when: dashboard, kanban, cards, modal, UI components, drag-drop, project page, checklist, command config, health monitor, reconnection, toolkit, 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 dropdown
11
- - notes:
12
- - CardModal tabs are dynamic: Details, Design?, Feature?, Test?, Checklist?, Terminal
13
- - Terminal tab auto-connects when session is running
14
- - HealthMonitor in ProjectHeader shows CPU/memory/terminals, expands on hover
15
- - ConnectionManager handles SSE reconnection with Page Visibility API
16
- - Cards with active work show pulsing green glow (active-glow-card CSS class)
17
- - Commands use startupCommands (session start) and activeCommands (toolbar)
18
- - ToolkitTab manages cross-project asset deployment (commands/skills/agents)
19
- - HealthDot on ProjectCard shows 0-100 score (green/amber/red)
20
- - paths.ts replaces all hardcoded paths with dynamic resolution
21
- - CardModal has edit session protection (2000ms grace period, last-known-value tracking)
22
- - Provider selector in ClaudeTerminalPanel pre-fills from stage defaults via /api/providers
23
- - CardModal detects existing session's provider from session name (projectId:provider:card:cardId)
24
- - NEVER use dark-end color scales for dark mode vibrant colors — use bright color at low opacity
25
- - soft-light blend produces warm/red cast on dark backgrounds — use screen or overlay instead
26
- - drop-shadow filters create rectangular glow on images with opaque backgrounds — incompatible with mix-blend-mode logo transparency
27
- - Gradient direction: always left (vibrant) to right (soft), never center-out
28
- - Texture is three layers: fine grain + perlin noise + depth highlight — each with separate light/dark tuning
29
-
30
- ### terminal-bridge
31
- - path: areas/terminal-bridge.md
32
- - updated: 2026-02-14
33
- - load-when: terminal, Claude 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
34
- - notes:
35
- - Pass prompts as positional args to Claude CLI, NOT -p flag (-p is print mode)
36
- - Bridge binds to localhost by default (not 0.0.0.0) for security
37
- - Command whitelist in bridge-config.json (only 'claude' and 'bash' allowed)
38
- - CWD validated before spawning PTY (must be absolute path)
39
- - Activity tracking: lastOutputAt timestamp, 2s threshold for "active" status
40
- - Grace period (5s) after disconnect prevents idle timeout race condition
41
- - ActivityTransition logging with trigger details for debugging phantom blips
42
- - Atomic state saves (temp file + rename) prevent data corruption
43
- - POST /sessions/:name/stop sends Escape key (soft stop) vs DELETE (kill)
44
- - Session names now include provider: {projectId}:{provider}:card:{cardId} (with legacy fallback)
45
- - provider-utils.ts builds command args from providers.json config (flag vs subcommand resume)
46
- - GUID detection only for Claude; Gemini/Codex use --resume --last
47
-
48
- ### claude-actions
49
- - path: areas/claude-actions.md
50
- - updated: 2026-02-09
51
- - load-when: actions, prompts, templates, context injection, commands, visibility, command config
52
- - notes:
53
- - Unified command system in data/commands.json (v2.0)
54
- - No 'type' field on Command - filtering by class + sessionState
55
- - getStartupCommands() for session start, getActiveCommands() for toolbar
56
- - Session states: new, resume, active, any
57
- - Groups: Card Actions, Session, Project, Utilities, Problems, Command Assistant
58
- - Update Priming and Chore Plan are newer commands
59
-
60
- ### messaging
61
- - path: areas/messaging.md
62
- - updated: 2026-02-14
63
- - load-when: telegram, messaging, voice, TTS, STT, speech, channel, bot, ElevenLabs, Whisper, voice swap, stop command, response mode, tone, command filter, provider, permission mismatch
64
- - notes:
65
- - Channel abstraction in types.ts, Telegram is first implementation
66
- - Voice pipeline: Whisper STT → ElevenLabs v3 TTS with [audio tags]
67
- - sendTextRaw() bypasses Markdown (preserves [brackets] for voice tags)
68
- - Chat actions for status indicators (record_voice, typing, upload_voice)
69
- - Voice search queries both personal (/v2/voices) and community (/v1/shared-voices)
70
- - State persisted in messaging-state.json (project + voice + responseMode + voiceTone)
71
- - CLI tool used by messaging skill to send outbound messages
72
- - "stop" text intercepted and sends Escape to active session (not forwarded as prompt)
73
- - command-filter.ts provides context-aware command filtering with template resolution
74
- - kanban-client.ts gives direct access to project card data for prompts
75
- - Messaging always forces skipPermissions: true (remote can't approve prompts)
76
- - Permission mismatch detection when session started from web UI without skip-permissions
77
- - State persists selectedProvider alongside project/voice/mode/tone
78
-
79
- ### skills
80
- - path: areas/skills.md
81
- - updated: 2026-02-09
82
- - load-when: skills, commands, agents, hooks, slash commands, SKILL.md, scaffolding
83
- - notes:
84
- - Skills live in .claude/skills/, commands in .claude/commands/, agents in .claude/agents/
85
- - 6 skills: context-priming, interactive-explainer, skill-creator, messaging, claude-code-docs-maintainer, kanban
86
- - 1 agent: doc-updater
87
- - 10 commands: checkpoint, feature, chore, implement, design, doc-discovery, doc-update, reference-fetch, create-command, problem_summary
88
- - Scaffold templates in data/scaffold-templates/
89
-
90
- ### scripts-deployment
91
- - path: areas/scripts-deployment.md
92
- - updated: 2026-02-10
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
94
- - notes:
95
- - Two port ranges: dev (3003/4/5) and prod (7591/2/3 = "sly" on keypad)
96
- - Stop by port, NOT PID files (npm spawns children, PIDs go stale)
97
- - bridge-sessions.json is critical — crash on read errors, never silently wipe
98
- - XDG_RUNTIME_DIR must be set for systemctl --user in code-server
99
- - Build every time on prod start — no stale build risk
100
- - sly-dev.sh tmux hook calls sly-stop.sh on session close to prevent zombies
101
- - Global CLIs: sly-kanban, sly-messaging, sly-scaffold (symlinked to ~/bin)
@@ -1,120 +0,0 @@
1
- # Claude Actions (Commands)
2
-
3
- Updated: 2026-02-09
4
-
5
- ## Overview
6
-
7
- Unified command system for Claude terminals. Commands are defined in `data/commands.json` with visibility controlled by terminal classes and session state. Commands are split into **startup commands** (shown before/during session start) and **active commands** (shown in toolbar while running).
8
-
9
- ## Key Files
10
-
11
- - `data/commands.json` - Unified command definitions (prompts, visibility, groups)
12
- - `documentation/terminal-classes.json` - Terminal class definitions
13
- - `web/src/lib/claude-actions.ts` - getStartupCommands(), getActiveCommands(), renderTemplate(), buildPrompt()
14
- - `web/src/lib/types.ts` - Command, CommandsConfig, TerminalClass types
15
- - `web/src/app/api/commands/route.ts` - CRUD for commands.json
16
- - `web/src/app/api/commands/stream/route.ts` - SSE for file change detection
17
- - `web/src/app/api/terminal-classes/route.ts` - Serves terminal-classes.json
18
- - `web/src/app/api/claude-actions/route.ts` - Serves commands in ClaudeActionsConfig format
19
-
20
- ## Data Models
21
-
22
- ```typescript
23
- // Unified command (no 'type' field - filtering by class + sessionState)
24
- Command {
25
- label: string;
26
- description: string;
27
- group?: string; // Card Actions, Session, Project, Utilities, Problems
28
- cardTypes?: string[]; // Filter: feature/bug/chore
29
- prompt: string; // Template with {{placeholders}}
30
- visibleIn: {
31
- classes: string[]; // Terminal classes where this appears
32
- projects: string[]; // Specific projects (if scope='specific')
33
- };
34
- scope: 'global' | 'specific';
35
- sessionState: 'new' | 'resume' | 'active' | 'any';
36
- }
37
-
38
- // Internal format used by ClaudeTerminalPanel
39
- ClaudeCommand {
40
- id: string;
41
- label: string;
42
- description: string;
43
- group?: string;
44
- cardTypes?: string[];
45
- prompt: string;
46
- visibleIn: { classes: string[]; projects: string[] };
47
- scope: 'global' | 'specific';
48
- sessionState: 'new' | 'resume' | 'active' | 'any';
49
- }
50
-
51
- // Config format served by /api/claude-actions
52
- ClaudeActionsConfig {
53
- version: string;
54
- contextTemplate: { card: string; global: string };
55
- commands: ClaudeCommand[];
56
- }
57
- ```
58
-
59
- ## Key Functions
60
-
61
- - `getStartupCommands(commands, terminalClass, hasHistory)` - Commands for session start (new/resume/any states)
62
- - `getActiveCommands(commands, terminalClass)` - Commands for toolbar while running (active/any states)
63
- - `renderTemplate(template, context)` - Handles {{var}}, {{#if}}, {{#each}}
64
- - `buildPrompt(contextTemplate, actionPrompt, context)` - Combines context + task sections
65
-
66
- ## Template Syntax
67
-
68
- - `{{var}}` - Simple substitution
69
- - `{{obj.prop}}` - Nested property access (e.g., `{{card.title}}`)
70
- - `{{#if var}}...{{/if}}` - Conditional block
71
- - `{{#each arr}}...{{this}}...{{/each}}` - Array iteration
72
-
73
- ## Context Objects
74
-
75
- Card context: `{ project, projectPath, card, stage, problems[] }`
76
- Global context: `{ project, projectPath }`
77
-
78
- ## Command Groups
79
-
80
- - **Card Actions** - Stage-specific workflows (Onboard, Design Doc, Implement, Debug, etc.)
81
- - **Session** - Continue, Summarize (for resume state)
82
- - **Project** - Explore, New Card (for project-level terminals)
83
- - **Utilities** - Compact, Clear, Checkpoint, Context, Show Card
84
- - **Problems** - Log Problem, Triage Problems, Fix Issues
85
- - **Command Assistant** - Configure, Update Priming (for command-assistant terminal class)
86
-
87
- ### Additional Commands
88
- - **Chore Plan** - Create maintenance/bug fix plan from card
89
-
90
- ## Session States
91
-
92
- - `new` - No history, shown for fresh start
93
- - `resume` - Has history, shown when resuming (Continue, Summarize)
94
- - `active` - Shown in toolbar when terminal is running
95
- - `any` - Always shown regardless of state
96
-
97
- ## Command Flow
98
-
99
- 1. **No session**: Show `startupCommands` (new + any states) as buttons
100
- 2. **Has history**: Show Resume button + `startupCommands` (new + any) for fresh start options
101
- 3. **Running**: Show `activeCommands` (active + any states) in footer toolbar
102
-
103
- ## Patterns & Invariants
104
-
105
- - Commands filtered by: terminalClass + sessionState
106
- - Startup commands: sessionState in ['new', 'resume', 'any'] based on hasHistory
107
- - Active commands: sessionState in ['active', 'any']
108
- - MAX_VISIBLE_ACTIONS = 6, overflow goes to "..." menu
109
- - Context button (id: 'context') appends card.areas to command
110
- - Show Card button (id: 'show-card') appends cardId
111
- - Shift+click on active command inserts without submitting
112
-
113
- ## When to Expand
114
-
115
- - Adding new commands → data/commands.json
116
- - Changing filter logic → getStartupCommands/getActiveCommands in claude-actions.ts
117
- - Template issues → renderTemplate() in claude-actions.ts
118
- - UI for commands → ClaudeTerminalPanel.tsx
119
- - Terminal class definitions → documentation/terminal-classes.json
120
- - Command configuration UI → CommandConfigModal.tsx