Problem
Every code example in the curriculum uses import paths and package names that do not exist in the current ecosystem. A student following the course cannot run a single example without encountering ImportError.
This breaks the core teaching loop: philosophy → example → run → understand. If the example can't run, the philosophy doesn't stick.
Phantom packages found
| Phantom reference |
Where |
Learner impact |
from qwed_sdk import QWEDLocal |
52 occurrences across 18 files (Modules 0-13, CHEAT_SHEET, CONTRIBUTING) |
Most severe — the primary import path across the entire course. qwed_sdk was the old SDK package structure, not the current qwed-verification install. No examples work. |
pip install qwed_finance |
Module 1, Module 8 |
Package does not exist on PyPI. Learner follows instructions and gets ERROR: No matching distribution found for qwed_finance |
pip install qwed-legal |
README, Module 11 exercises |
Package does not exist. Learner cannot follow Module 11's "Deterministic AI Paralegal" exercises |
pip install qwed_ucp |
Module 8 (commerce section) |
Package does not exist. The UCP commerce verification section is un-runnable |
pip install qwed-mcp |
Module 1, Module 8 (Claude Desktop) |
Package does not exist. MCP integration section references it but cannot be tested |
@qwed-ai/finance (npm) |
Module 8 (TypeScript SDK section) |
npm package does not exist |
Dual-namespace confusion
Modules 12 and 13 use both qwed_sdk and qwed_new:
from qwed_sdk.guards import RAGGuard # does not exist
from qwed_new.guards.process_guard import ProcessVerifier # exists
This forces learners to understand two different package conventions simultaneously.
Scope
For each phantom reference, either:
- Make it real — Publish the package or create a mock/placeholder during the course
- Remove the reference — Rewrite the example to use only packages that actually exist
- Redirect — If the functionality lives inside
qwed-verification core, update the import to point there
Specific decisions needed
| Package |
Decision needed |
qwed_sdk → qwed_new or qwed-verification |
Does the core verification engine (qwed_new) expose everything the course needs? Or does the course need a separate SDK package? |
qwed_finance |
Is this planned? Should the course reference it at all? Or rewrite examples using core qwed-verification math engine + manual ISOGuard logic? |
qwed-legal |
Same question — planned package or curriculum-only concept? If not planned, Module 11 needs complete rewrite using core verification primitives |
qwed_ucp |
Same question |
qwed-mcp |
MCP server exists conceptually — should pip install qwed-mcp be made real, or should examples use local code? |
Must change (unconditionally)
- All 52
qwed_sdk references migrated to the real import path (whether that's qwed_new or a consolidated qwed-verification)
CHEAT_SHEET.md quick-start import updated
CONTRIBUTING.md example code updated
requirements.txt updated to match real package names
Acceptance criteria
Non-goals
Why this is P1
Philosophically meaningless if the code doesn't run. A student can understand "Verified result state" perfectly but learn nothing if every import fails. This is the trust boundary between the curriculum and the student — if the code can't execute, the curriculum is not trustworthy.
Problem
Every code example in the curriculum uses import paths and package names that do not exist in the current ecosystem. A student following the course cannot run a single example without encountering
ImportError.This breaks the core teaching loop: philosophy → example → run → understand. If the example can't run, the philosophy doesn't stick.
Phantom packages found
from qwed_sdk import QWEDLocalqwed_sdkwas the old SDK package structure, not the currentqwed-verificationinstall. No examples work.pip install qwed_financeERROR: No matching distribution found for qwed_financepip install qwed-legalpip install qwed_ucppip install qwed-mcp@qwed-ai/finance(npm)Dual-namespace confusion
Modules 12 and 13 use both
qwed_sdkandqwed_new:This forces learners to understand two different package conventions simultaneously.
Scope
For each phantom reference, either:
qwed-verificationcore, update the import to point thereSpecific decisions needed
qwed_sdk→qwed_neworqwed-verificationqwed_new) expose everything the course needs? Or does the course need a separate SDK package?qwed_financeqwed-verificationmath engine + manual ISOGuard logic?qwed-legalqwed_ucpqwed-mcppip install qwed-mcpbe made real, or should examples use local code?Must change (unconditionally)
qwed_sdkreferences migrated to the real import path (whether that'sqwed_newor a consolidatedqwed-verification)CHEAT_SHEET.mdquick-start import updatedCONTRIBUTING.mdexample code updatedrequirements.txtupdated to match real package namesAcceptance criteria
pip install qwed-verification(or whatever the consolidated package is)import qwed_sdkremains anywhere in the repositoryrequirements.txtlists only real, installable packagesNon-goals
Why this is P1
Philosophically meaningless if the code doesn't run. A student can understand "Verified result state" perfectly but learn nothing if every
importfails. This is the trust boundary between the curriculum and the student — if the code can't execute, the curriculum is not trustworthy.