epic-1/story-6: Deliver Quickstart and First-Run Examples - #27
Conversation
There was a problem hiding this comment.
Code Review
This pull request implements a minimal local feature-resolution foundation (Story 1.6) for the Python SDK, introducing run_feature and run_features to resolve feature flags and cast variables locally. It also updates the README with comprehensive quickstart guides, adds runnable examples, and includes drift-protection tests. Feedback is provided regarding the type-casting logic in _cast_value, where None values should be preserved explicitly to prevent incorrect casting to False or 'None'.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| if declared_type is None: | ||
| return value |
There was a problem hiding this comment.
When a feature variable's value is None (null), it should be preserved as None rather than being cast to False (for boolean types) or "None" (for string types). Converting None to these values can lead to incorrect evaluation logic in the application. Adding an early return for None values ensures they are preserved correctly across all declared types.
if value is None:
return None
if declared_type is None:
return valueBeads: ai-driven-product-dev-kvc5 Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…tion (GREEN) Beads: ai-driven-product-dev-kvc5 Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…le config Beads: ai-driven-product-dev-chtr Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Beads: ai-driven-product-dev-0qgb Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
…GREEN) Beads: ai-driven-product-dev-0qgb Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
c63f8f6 to
0cf59fe
Compare
|
Superseded — all commits already in main (bc76b64). Closing without merge as part of post-sprint cleanup. |
Summary
Implements BMAD story 1.6 (
1-6-deliver-quickstart-and-first-run-examples) for the Convert Python SDK — README first-run guide and runnable framework-agnostic examples.evaluation/features.py,domain/results.py):FeatureResult/FeatureStatustyped models;Context.run_feature()/run_features()resolving features from selected variations'fullStackFeaturechanges, reusing story 1.4'sselect_experienceevaluation path. (Story 1.5's code shipped only on the supersededcodex/feat-tracking-mvplineage — minimal surface built here per the story-1.4 precedent; reconcile when story 1.5 is revisited.)examples/):direct_config.py,basic_experience.py,basic_feature.py, shared_sample_config.py— offline, framework-agnostic, no hard-coded secrets (sdk_keyviaCONVERT_SDK_KEYenv var).Core(SDKConfig(...)).initialize(),create_context,run_experience,run_feature; noConvertSDK.create()— per audit correction F-057, docs match the code on this branch).tests/test_examples.pyexecutes the examples; examples ship in the sdist;uv buildgreen.Tests: 193 passing (170 baseline + 23 new).
Traceability
sprint/2026-04-06-convert-python-sdkai-driven-product-dev-ki2o; tasks-kvc5(feature foundation),-chtr(examples),-0qgb(README + drift tests) — all closedai-driven-product-dev/work/2026-06-07-deliver-quickstart-and-first-run-examples/Review notes
readiness-assessment.mdin the conductor work dir.🤖 Generated with Claude Code