@bis-code/study-dash 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.
- package/.claude-plugin/marketplace.json +18 -0
- package/.claude-plugin/plugin.json +19 -0
- package/.mcp.json +8 -0
- package/LICENSE +21 -0
- package/commands/dashboard.md +8 -0
- package/commands/import.md +12 -0
- package/commands/learn.md +13 -0
- package/hooks/hooks.json +27 -0
- package/package.json +36 -0
- package/rules/tutor-mode.md +38 -0
- package/server/dist/bundle.mjs +1240 -0
- package/server/dist/dashboard/api.d.ts +16 -0
- package/server/dist/dashboard/api.js +150 -0
- package/server/dist/dashboard/api.js.map +1 -0
- package/server/dist/dashboard/server.d.ts +21 -0
- package/server/dist/dashboard/server.js +171 -0
- package/server/dist/dashboard/server.js.map +1 -0
- package/server/dist/index.d.ts +2 -0
- package/server/dist/index.js +40 -0
- package/server/dist/index.js.map +1 -0
- package/server/dist/services/curriculum.d.ts +25 -0
- package/server/dist/services/curriculum.js +110 -0
- package/server/dist/services/curriculum.js.map +1 -0
- package/server/dist/services/exercises.d.ts +35 -0
- package/server/dist/services/exercises.js +215 -0
- package/server/dist/services/exercises.js.map +1 -0
- package/server/dist/services/qa.d.ts +15 -0
- package/server/dist/services/qa.js +30 -0
- package/server/dist/services/qa.js.map +1 -0
- package/server/dist/services/viz.d.ts +8 -0
- package/server/dist/services/viz.js +21 -0
- package/server/dist/services/viz.js.map +1 -0
- package/server/dist/storage/db.d.ts +11 -0
- package/server/dist/storage/db.js +51 -0
- package/server/dist/storage/db.js.map +1 -0
- package/server/dist/storage/files.d.ts +10 -0
- package/server/dist/storage/files.js +34 -0
- package/server/dist/storage/files.js.map +1 -0
- package/server/dist/storage/schema.d.ts +3 -0
- package/server/dist/storage/schema.js +126 -0
- package/server/dist/storage/schema.js.map +1 -0
- package/server/dist/tools/curriculum.d.ts +4 -0
- package/server/dist/tools/curriculum.js +137 -0
- package/server/dist/tools/curriculum.js.map +1 -0
- package/server/dist/tools/exercises.d.ts +4 -0
- package/server/dist/tools/exercises.js +76 -0
- package/server/dist/tools/exercises.js.map +1 -0
- package/server/dist/tools/qa.d.ts +4 -0
- package/server/dist/tools/qa.js +56 -0
- package/server/dist/tools/qa.js.map +1 -0
- package/server/dist/tools/viz.d.ts +4 -0
- package/server/dist/tools/viz.js +54 -0
- package/server/dist/tools/viz.js.map +1 -0
- package/server/dist/types.d.ts +103 -0
- package/server/dist/types.js +2 -0
- package/server/dist/types.js.map +1 -0
- package/server/node_modules/better-sqlite3/LICENSE +21 -0
- package/server/node_modules/better-sqlite3/README.md +99 -0
- package/server/node_modules/better-sqlite3/binding.gyp +38 -0
- package/server/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/server/node_modules/better-sqlite3/deps/common.gypi +68 -0
- package/server/node_modules/better-sqlite3/deps/copy.js +31 -0
- package/server/node_modules/better-sqlite3/deps/defines.gypi +41 -0
- package/server/node_modules/better-sqlite3/deps/download.sh +122 -0
- package/server/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
- package/server/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +261480 -0
- package/server/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +13715 -0
- package/server/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +719 -0
- package/server/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
- package/server/node_modules/better-sqlite3/deps/test_extension.c +21 -0
- package/server/node_modules/better-sqlite3/lib/database.js +90 -0
- package/server/node_modules/better-sqlite3/lib/index.js +3 -0
- package/server/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
- package/server/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
- package/server/node_modules/better-sqlite3/lib/methods/function.js +31 -0
- package/server/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
- package/server/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
- package/server/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
- package/server/node_modules/better-sqlite3/lib/methods/table.js +189 -0
- package/server/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
- package/server/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
- package/server/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
- package/server/node_modules/better-sqlite3/lib/util.js +12 -0
- package/server/node_modules/better-sqlite3/package.json +54 -0
- package/server/node_modules/better-sqlite3/src/better_sqlite3.cpp +2186 -0
- package/server/node_modules/better-sqlite3/src/better_sqlite3.hpp +1036 -0
- package/server/package.json +31 -0
- package/skills/import/SKILL.md +19 -0
- package/skills/learn/SKILL.md +17 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "bis-code-study-dash",
|
|
3
|
+
"description": "Structured learning plugin for Claude Code",
|
|
4
|
+
"owner": {
|
|
5
|
+
"name": "Ioan-Sorin Baicoianu",
|
|
6
|
+
"email": "baicoianuioansorin@gmail.com"
|
|
7
|
+
},
|
|
8
|
+
"plugins": [
|
|
9
|
+
{
|
|
10
|
+
"name": "study-dash",
|
|
11
|
+
"description": "Structured learning on any subject — dashboard, Q&A logging, AI visualizations, exercises with test validation",
|
|
12
|
+
"source": {
|
|
13
|
+
"source": "github",
|
|
14
|
+
"repo": "bis-code/study-dash"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "study-dash",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Structured learning on any subject with dashboard, Q&A logging, visualizations, exercises",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Ioan-Sorin Baicoianu",
|
|
7
|
+
"email": "baicoianuioansorin@gmail.com"
|
|
8
|
+
},
|
|
9
|
+
"repository": "https://github.com/bis-code/study-dash",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"learning",
|
|
13
|
+
"education",
|
|
14
|
+
"dashboard",
|
|
15
|
+
"exercises",
|
|
16
|
+
"visualizations"
|
|
17
|
+
],
|
|
18
|
+
"mcpServers": "./.mcp.json"
|
|
19
|
+
}
|
package/.mcp.json
ADDED
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ioan-Sorin Baicoianu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: import
|
|
3
|
+
description: Import a PDF syllabus, lecture slides, or assignment into StudyDash as a new subject or add to an existing one
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Guide the user through importing learning materials:
|
|
7
|
+
|
|
8
|
+
1. Ask for the file path or let them describe the subject
|
|
9
|
+
2. If a PDF path is provided, read it and classify the content
|
|
10
|
+
3. Create the subject and import the curriculum structure
|
|
11
|
+
4. Confirm the imported structure with the user
|
|
12
|
+
5. Mention the dashboard at http://127.0.0.1:19282 for reviewing the import
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: learn
|
|
3
|
+
description: Start or manage a learning session — show active subject/topic, list subjects, switch between them
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Check the current learning state with `learn_get_progress`.
|
|
7
|
+
|
|
8
|
+
If a subject is active, show:
|
|
9
|
+
- Current subject and topic
|
|
10
|
+
- Progress (X/Y topics done)
|
|
11
|
+
- Dashboard URL: http://127.0.0.1:19282
|
|
12
|
+
|
|
13
|
+
If no subject is active, list available subjects and ask which to work on. If no subjects exist, suggest creating one or importing a curriculum.
|
package/hooks/hooks.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"PostToolUse": [
|
|
4
|
+
{
|
|
5
|
+
"matcher": "learn_mark_done",
|
|
6
|
+
"hooks": [{
|
|
7
|
+
"type": "prompt",
|
|
8
|
+
"prompt": "The user just completed a topic. Generate 2-3 exercises for this topic using learn_create_exercise. Include at least one coding exercise and one quiz. Match the difficulty to the topic content."
|
|
9
|
+
}]
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"matcher": "learn_log_answer",
|
|
13
|
+
"hooks": [{
|
|
14
|
+
"type": "prompt",
|
|
15
|
+
"prompt": "You just logged an answer. If the topic would benefit from a visual step-through diagram, create one with learn_create_viz using viz primitives (viz-box, viz-arrow, viz-slot, viz-select-case). Check auto_viz setting first. If off, ask the user."
|
|
16
|
+
}]
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"PreCompact": [{
|
|
20
|
+
"matcher": "",
|
|
21
|
+
"hooks": [{
|
|
22
|
+
"type": "prompt",
|
|
23
|
+
"prompt": "Before compaction, note the active subject and topic so you can restore context after compaction. Use learn_get_progress to check current state."
|
|
24
|
+
}]
|
|
25
|
+
}]
|
|
26
|
+
}
|
|
27
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bis-code/study-dash",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Claude Code plugin for structured learning on any subject — dashboard, Q&A logging, visualizations, exercises",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Ioan-Sorin Baicoianu <baicoianuioansorin@gmail.com>",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/bis-code/study-dash.git"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [
|
|
12
|
+
"claude-code",
|
|
13
|
+
"plugin",
|
|
14
|
+
"learning",
|
|
15
|
+
"education",
|
|
16
|
+
"dashboard",
|
|
17
|
+
"mcp",
|
|
18
|
+
"exercises",
|
|
19
|
+
"visualizations",
|
|
20
|
+
"study"
|
|
21
|
+
],
|
|
22
|
+
"files": [
|
|
23
|
+
".claude-plugin",
|
|
24
|
+
"server/dist",
|
|
25
|
+
"server/package.json",
|
|
26
|
+
"server/node_modules/better-sqlite3",
|
|
27
|
+
"commands",
|
|
28
|
+
"skills",
|
|
29
|
+
"hooks",
|
|
30
|
+
"rules",
|
|
31
|
+
".mcp.json"
|
|
32
|
+
],
|
|
33
|
+
"scripts": {
|
|
34
|
+
"prepublishOnly": "cd server && npm install && npm run bundle"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Learning Mode
|
|
2
|
+
|
|
3
|
+
This project uses StudyDash for structured learning. Claude acts as a tutor.
|
|
4
|
+
|
|
5
|
+
## Auto-Logging (Mandatory)
|
|
6
|
+
|
|
7
|
+
When the user asks a question about a topic they're studying:
|
|
8
|
+
|
|
9
|
+
1. **Log the question** — call `learn_log_question` with the user's question (markdown). Note the returned question ID.
|
|
10
|
+
2. **Answer the question** — provide a clear, practical answer
|
|
11
|
+
3. **Log the answer** — call `learn_log_answer` with a concise summary (markdown, include code blocks). Always pass `question_id` to pair them on the dashboard.
|
|
12
|
+
|
|
13
|
+
## Content Formatting
|
|
14
|
+
|
|
15
|
+
All logged content MUST be markdown:
|
|
16
|
+
- Use code blocks with language tags
|
|
17
|
+
- Use headings, lists, bold for structure
|
|
18
|
+
- Keep questions concise (1-3 sentences)
|
|
19
|
+
- Keep answers focused — key insight + example
|
|
20
|
+
|
|
21
|
+
## Topic Management
|
|
22
|
+
|
|
23
|
+
- At session start, check the active subject/topic with `learn_get_progress`
|
|
24
|
+
- If no subject is active, ask the user which subject to work on or create a new one
|
|
25
|
+
- If no topic is active, suggest the next topic in the curriculum
|
|
26
|
+
- When the user says they're done with a topic, call `learn_mark_done`
|
|
27
|
+
|
|
28
|
+
## Teaching Style
|
|
29
|
+
|
|
30
|
+
- For coding subjects: explain with practical code examples, show idiomatic patterns
|
|
31
|
+
- For non-coding subjects: use clear explanations with examples and analogies
|
|
32
|
+
- Always include runnable examples for coding topics
|
|
33
|
+
- Point out common mistakes and gotchas
|
|
34
|
+
- Adapt language and depth to the subject domain
|
|
35
|
+
|
|
36
|
+
## Dashboard
|
|
37
|
+
|
|
38
|
+
The learning dashboard runs at http://127.0.0.1:19282 — mention it if the user wants to review progress.
|