stackprep-pro 0.2.12__tar.gz → 0.2.13__tar.gz
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.
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/PKG-INFO +1 -1
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/pyproject.toml +1 -1
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/src/stackprep_pro/server.py +9 -13
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/src/stackprep_pro/skills/certification.md +10 -1
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/src/stackprep_pro/skills/interview.md +10 -1
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/uv.lock +1 -1
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/.claude/settings.json +0 -0
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/.githooks/pre-commit +0 -0
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/.github/workflows/publish.yml +0 -0
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/.gitignore +0 -0
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/.mcp.json +0 -0
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/CLAUDE.md +0 -0
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/README.md +0 -0
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/scripts/bump_version.sh +0 -0
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/scripts/generate_readme.py +0 -0
- {stackprep_pro-0.2.12 → stackprep_pro-0.2.13}/src/stackprep_pro/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: stackprep-pro
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.13
|
|
4
4
|
Summary: stackprep-pro — interview & certification prep MCP server for any AI client
|
|
5
5
|
Project-URL: Homepage, https://github.com/youngpada1/stackprep-pro
|
|
6
6
|
Project-URL: Repository, https://github.com/youngpada1/stackprep-pro
|
|
@@ -307,31 +307,27 @@ def end_session(session_id: str) -> str:
|
|
|
307
307
|
all_flagged = list(dict.fromkeys(session["auto_flagged"] + session["flagged"]))
|
|
308
308
|
session["ended"] = True
|
|
309
309
|
session["all_flagged"] = all_flagged
|
|
310
|
-
|
|
311
|
-
# chooses to, via save_session (with a name they provide).
|
|
310
|
+
_persist_session(session_id)
|
|
312
311
|
|
|
313
312
|
score = session["score"]
|
|
314
313
|
topics_list = "\n".join(f" • {t}" for t in all_flagged) if all_flagged else " (none — full score!)"
|
|
315
314
|
|
|
316
315
|
return "\n".join([
|
|
317
|
-
"=== SESSION
|
|
316
|
+
"=== SESSION ENDED ===",
|
|
318
317
|
f"Score: {score['correct']}/{score['total']} "
|
|
319
318
|
f"({score['incorrect']} incorrect, {score['partial']} partial)",
|
|
320
319
|
"",
|
|
321
320
|
"Auto-detected study topics:",
|
|
322
321
|
topics_list,
|
|
323
322
|
"",
|
|
324
|
-
"
|
|
325
|
-
"
|
|
326
|
-
"save_session
|
|
323
|
+
"This is the STUDY PACK path (the user pressed S / is DONE with the questions and wants a study pack to",
|
|
324
|
+
"prepare for their weak points later). This is DIFFERENT from saving a session to resume — that is",
|
|
325
|
+
"save_session (the X path), and is NOT done here.",
|
|
327
326
|
"",
|
|
328
|
-
"Now (
|
|
329
|
-
' 1.
|
|
330
|
-
|
|
331
|
-
" 3.
|
|
332
|
-
' a. Ask: "What would you like to name this study pack? (e.g. snowpro-core-week1)"',
|
|
333
|
-
" b. Generate the Study Plan and study pack (see skill rules), then call",
|
|
334
|
-
" save_study_pack(session_id='{}', name=<pack name the user chose>, content=<generated pack>).".format(session_id),
|
|
327
|
+
"Now (identical for interview and certification mode):",
|
|
328
|
+
' 1. Generate a Study Plan (see skill rules), then ask: "Want to add any extra topics before I save the study pack?"',
|
|
329
|
+
' 2. Ask: "What would you like to name this study pack? (e.g. snowpro-core-week1)"',
|
|
330
|
+
" 3. Call save_study_pack(session_id='{}', name=<pack name the user chose>, content=<generated pack>).".format(session_id),
|
|
335
331
|
])
|
|
336
332
|
|
|
337
333
|
|
|
@@ -72,7 +72,16 @@ DOCS: <Title>: <url>
|
|
|
72
72
|
Always include 1 real, publicly accessible URL relevant to the topic (official docs, RFC, vendor channel).
|
|
73
73
|
|
|
74
74
|
After scoring, ask:
|
|
75
|
-
**"Next question? [Y] —
|
|
75
|
+
**"Next question? [Y] — S to save a Study Pack, X to save & exit"**
|
|
76
|
+
|
|
77
|
+
Handling the reply:
|
|
78
|
+
- **Y** → next question.
|
|
79
|
+
- **S** → the user is DONE and wants a study pack. Call `end_session` and follow its returned flow
|
|
80
|
+
(generate study plan, name the study pack, save_study_pack). This marks the session finished.
|
|
81
|
+
- **X** → the user wants to PAUSE and resume later. Ask "Do you want to save this session to continue
|
|
82
|
+
later? (y/n)". If yes, ask "What would you like to name this session?" — the user MUST name it (never
|
|
83
|
+
auto-generate) — then call `save_session` with that name. The session stays RESUMABLE and appears later
|
|
84
|
+
in the continue list under that name. If no, just exit without saving.
|
|
76
85
|
|
|
77
86
|
## Adaptive difficulty
|
|
78
87
|
|
|
@@ -73,7 +73,16 @@ DOCS: <Title>: <url>
|
|
|
73
73
|
Always include 1 real, publicly accessible URL relevant to the topic (official docs, RFC, vendor channel).
|
|
74
74
|
|
|
75
75
|
After scoring, ask:
|
|
76
|
-
**"Next question? [Y] —
|
|
76
|
+
**"Next question? [Y] — S to save a Study Pack, X to save & exit"**
|
|
77
|
+
|
|
78
|
+
Handling the reply:
|
|
79
|
+
- **Y** → next question.
|
|
80
|
+
- **S** → the user is DONE and wants a study pack. Call `end_session` and follow its returned flow
|
|
81
|
+
(generate study plan, name the study pack, save_study_pack). This marks the session finished.
|
|
82
|
+
- **X** → the user wants to PAUSE and resume later. Ask "Do you want to save this session to continue
|
|
83
|
+
later? (y/n)". If yes, ask "What would you like to name this session?" — the user MUST name it (never
|
|
84
|
+
auto-generate) — then call `save_session` with that name. The session stays RESUMABLE and appears later
|
|
85
|
+
in the continue list under that name. If no, just exit without saving.
|
|
77
86
|
|
|
78
87
|
## Adaptive difficulty
|
|
79
88
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|