Skip to content

epic-1/story-6: Deliver Quickstart and First-Run Examples - #27

Closed
usmanabbas7 wants to merge 5 commits into
epic-1/story-4-run-local-experience-evaluationsfrom
epic-1/story-6-deliver-quickstart-and-first-run-examples
Closed

epic-1/story-6: Deliver Quickstart and First-Run Examples#27
usmanabbas7 wants to merge 5 commits into
epic-1/story-4-run-local-experience-evaluationsfrom
epic-1/story-6-deliver-quickstart-and-first-run-examples

Conversation

@usmanabbas7

Copy link
Copy Markdown
Collaborator

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.

  • Minimal feature-resolution foundation (evaluation/features.py, domain/results.py): FeatureResult/FeatureStatus typed models; Context.run_feature() / run_features() resolving features from selected variations' fullStackFeature changes, reusing story 1.4's select_experience evaluation path. (Story 1.5's code shipped only on the superseded codex/feat-tracking-mvp lineage — minimal surface built here per the story-1.4 precedent; reconcile when story 1.5 is revisited.)
  • Runnable examples (examples/): direct_config.py, basic_experience.py, basic_feature.py, shared _sample_config.py — offline, framework-agnostic, no hard-coded secrets (sdk_key via CONVERT_SDK_KEY env var).
  • README rewrite: scaffold → real first-run guide matching the actual shipped API (Core(SDKConfig(...)).initialize(), create_context, run_experience, run_feature; no ConvertSDK.create() — per audit correction F-057, docs match the code on this branch).
  • Drift protection: tests/test_examples.py executes the examples; examples ship in the sdist; uv build green.

Tests: 193 passing (170 baseline + 23 new).

Traceability

Review notes

  • Code review: clean round 1, no warnings.
  • Readiness gate scored 9.0/10; 3 questions auto-delegated in sprint mode (run_feature foundation scope; example signature shape; sample config shape). See readiness-assessment.md in the conductor work dir.

🤖 Generated with Claude Code

@usmanabbas7 usmanabbas7 self-assigned this Jun 7, 2026
@usmanabbas7
usmanabbas7 requested a review from clllaur June 7, 2026 09:44

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines +66 to +67
if declared_type is None:
return value

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

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 value

usmanabbas7 and others added 5 commits June 14, 2026 21:58
Beads: 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]>
@usmanabbas7
usmanabbas7 force-pushed the epic-1/story-6-deliver-quickstart-and-first-run-examples branch from c63f8f6 to 0cf59fe Compare June 14, 2026 16:58
@abbaseya

Copy link
Copy Markdown
Collaborator

Superseded — all commits already in main (bc76b64). Closing without merge as part of post-sprint cleanup.

@abbaseya abbaseya closed this Jun 18, 2026
@abbaseya
abbaseya deleted the epic-1/story-6-deliver-quickstart-and-first-run-examples branch June 18, 2026 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants