stackprep-pro 0.2.19__tar.gz → 0.2.21__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.19 → stackprep_pro-0.2.21}/PKG-INFO +1 -1
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/pyproject.toml +1 -1
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/src/stackprep_pro/server.py +13 -4
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/src/stackprep_pro/skills/interview.md +7 -0
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/uv.lock +1 -1
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/.claude/settings.json +0 -0
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/.githooks/pre-commit +0 -0
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/.github/workflows/publish.yml +0 -0
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/.gitignore +0 -0
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/.mcp.json +0 -0
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/CLAUDE.md +0 -0
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/README.md +0 -0
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/scripts/bump_version.sh +0 -0
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/scripts/generate_readme.py +0 -0
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/src/stackprep_pro/__init__.py +0 -0
- {stackprep_pro-0.2.19 → stackprep_pro-0.2.21}/src/stackprep_pro/skills/certification.md +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.21
|
|
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
|
|
@@ -19,10 +19,11 @@ PRESENTATION (every message): always respond as elegant RENDERED markdown blocks
|
|
|
19
19
|
dividers, clean tables/lists. NEVER output flat plain text.
|
|
20
20
|
|
|
21
21
|
After the user picks a mode, silently call BOTH list_sessions(mode=<chosen mode>) and
|
|
22
|
-
list_study_packs(mode=<chosen mode>).
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
list_study_packs(mode=<chosen mode>). Then show ONE single "What would you like to do?" block — a single
|
|
23
|
+
numbered table — listing, as rows: each saved session to continue (by its name), each saved study pack to
|
|
24
|
+
open (by its name), and a final "Start a brand-new prep" row. Do NOT show separate "saved sessions" and
|
|
25
|
+
"saved study packs" tables on top of the options table — only the one combined options table. The user
|
|
26
|
+
replies with a number. Collect inputs and call start_session.
|
|
26
27
|
Follow the skill rules returned by start_session exactly — the skill is the source of truth."""
|
|
27
28
|
|
|
28
29
|
# Hardcoded so the very first block is guaranteed, not AI-guessed.
|
|
@@ -166,6 +167,8 @@ def start_session(
|
|
|
166
167
|
_sessions[session_id] = {
|
|
167
168
|
"mode": mode,
|
|
168
169
|
"cert_name": cert_name,
|
|
170
|
+
"cv": cv,
|
|
171
|
+
"jd": jd,
|
|
169
172
|
"session_name": "",
|
|
170
173
|
"extra_topics": extra_topics,
|
|
171
174
|
"q_num": 0,
|
|
@@ -459,6 +462,12 @@ def resume_session(session_id: str) -> str:
|
|
|
459
462
|
]
|
|
460
463
|
if cert:
|
|
461
464
|
context_lines.append(f"Certification: {cert}")
|
|
465
|
+
cv = session.get("cv", "")
|
|
466
|
+
jd = session.get("jd", "")
|
|
467
|
+
if cv:
|
|
468
|
+
context_lines.append(f"\n--- CV ---\n{cv}")
|
|
469
|
+
if jd:
|
|
470
|
+
context_lines.append(f"\n--- Job description ---\n{jd}")
|
|
462
471
|
context_lines += [
|
|
463
472
|
f"Questions answered so far: {q_num}",
|
|
464
473
|
f"Score so far: {score['correct']}/{score['total']} "
|
|
@@ -22,6 +22,13 @@ This is mandatory EVERY time, no matter how few questions were answered.
|
|
|
22
22
|
|
|
23
23
|
## Session setup
|
|
24
24
|
|
|
25
|
+
When starting a NEW interview session, first check (silently, via list_sessions) whether the user has a
|
|
26
|
+
previously saved interview session. If so, ask: "Do you want to reuse the same CV and job description from a
|
|
27
|
+
previous session, or provide new ones?" If they reuse, take the CV and JD from that saved session and pass
|
|
28
|
+
them to start_session unchanged. Otherwise ask for the new CV and JD.
|
|
29
|
+
|
|
30
|
+
The CV and JD are stored on the session, so a resumed session keeps the exact same CV and JD.
|
|
31
|
+
|
|
25
32
|
Inputs arrive via MCP (CV, job description, extra topics). After analysing the CV and JD, present a clean, structured overview in this exact layout:
|
|
26
33
|
|
|
27
34
|
```
|
|
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
|
|
File without changes
|