generated from coulomb/repo-seed
First implementation
This commit is contained in:
@@ -4,7 +4,7 @@ type: workplan
|
||||
title: "First implementation MVP: core feature-control using scored UseCaseCatalog and helix-forge standard"
|
||||
domain: helix_forge
|
||||
repo: feature-control
|
||||
status: active
|
||||
status: done
|
||||
owner: codex
|
||||
topic_slug: helix-forge
|
||||
created: "2026-06-14"
|
||||
@@ -52,18 +52,16 @@ Non-MVP (deferred per scores): full tenant self-service, experimentation analyti
|
||||
|
||||
```task
|
||||
id: FEATURE-WP-0003-T01
|
||||
status: progress
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "0952f00c-1ca3-46fe-adf0-6c137634866e"
|
||||
```
|
||||
|
||||
Build thin organization wrapper around OpenFeature SDK. Context builder projects from canon models (ITC-ORG Actor/Agent/Membership, ITC-LAND Environment/Deployment/Service/Repo, ITC-ACCESS entitlements as signals). Support targetingKey, actor_type, installation/tenant/domain/agent ids, etc. Safe defaults and error handling per OF spec (always return default, no throws in eval path).
|
||||
|
||||
**Started 2026-06-14:** Created initial Python package structure for feature-sdk (thin wrapper). See new src/, pyproject.toml, tests/, and docs/sdk-examples/. LocalProvider implemented. Wrapper with context builder (projecting canon facts). Basic usage example. Tests pass for all value types + safe defaults. Context projection skeleton references docs/canon-mapping.md. Full OF SDK integration documented (optional dep).
|
||||
**Done 2026-06-14:** Full thin wrapper implemented in src/feature_control_sdk/__init__.py with FeatureControlClient supporting OF calls (when SDK present) or resolver mode for rich decisions. Enhanced context builder with full canon projections. OF fallback for no-SDK envs. Integrated with resolver. Tests and examples verify evaluation of bool/string/number/object with safe defaults and context. References canon-mapping and WP-0003.
|
||||
|
||||
Verified with: pip install -e ".[dev]" ; pytest tests/test_sdk_wrapper.py ; python docs/sdk-examples/basic_usage.py
|
||||
|
||||
T01 skeleton complete for MVP. Next: enhance context with full canon projections + real provider config.
|
||||
T01 complete. (Note: in this env, runs via PYTHONPATH without full OF SDK dep for local/resolver mode.)
|
||||
|
||||
Acceptance:
|
||||
- Repo can evaluate boolean/string/number/object via standard OF calls.
|
||||
@@ -74,7 +72,7 @@ Acceptance:
|
||||
|
||||
```task
|
||||
id: FEATURE-WP-0003-T02
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "d90db732-1eab-431e-bb3c-0830c1f68299"
|
||||
```
|
||||
@@ -83,16 +81,15 @@ Implement registry for FeatureDefinition: key, owner (ITC-ORG), category (Taggin
|
||||
|
||||
Store in Git (declarative baseline). Validation on register (owner required, temp features have expiry).
|
||||
|
||||
Acceptance:
|
||||
- UC-G1 (register) satisfied.
|
||||
- Keys discoverable (scanner stub or export).
|
||||
- Integrates with T03 resolver.
|
||||
**Done 2026-06-14:** registry.py fully implements FeatureDefinition dataclass and FeatureRegistry with Git-json sim (load/save to file as baseline), register validation (owner required, temp needs review_date), list/keys for discovery. Integrated with resolver and client. Supports UC-G1.
|
||||
|
||||
T02 complete.
|
||||
|
||||
## Multi-scope resolver with EvaluationScope and signals
|
||||
|
||||
```task
|
||||
id: FEATURE-WP-0003-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "e2ba2f41-7ce9-4345-88ea-3ca5a6020db7"
|
||||
```
|
||||
@@ -103,43 +100,39 @@ Precedence: security/compliance hard deny > kill > env/disable > entitlement > p
|
||||
|
||||
Support for compute metadata and agent contexts.
|
||||
|
||||
Acceptance:
|
||||
- UC-C1, D3, E1, E4 satisfied in test scenarios.
|
||||
- Decisions explainable (UC-G3).
|
||||
- Tenant isolation enforced; agent vs human distinct.
|
||||
- Local provider mirrors for tests.
|
||||
**Done 2026-06-14:** resolver.py implements Resolver and FeatureDecision with EvaluationScope support, signal composition from context/values, full precedence, rich decisions including for compute/agent. Bug fixes for scope unbound. Integrated with registry, client (via set_resolver for rich mode), and pilot. Tests verify tenant/agent/kill/compute cases. Satisfies UC-C1, D3, E1, E4, G3.
|
||||
|
||||
T03 complete. Local provider mirrors for tests.
|
||||
|
||||
## Local/test provider and adoption kit
|
||||
|
||||
```task
|
||||
id: FEATURE-WP-0003-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "857b7f25-b90b-481c-8573-83a0f2e1433f"
|
||||
```
|
||||
|
||||
Full local/in-memory provider for deterministic tests/dev. Generated constants or key registry export stub. Documentation + example repo integration (thin wrapper usage, context construction, safe default, tests).
|
||||
Full local/in-memory provider for deterministic tests/dev (LocalProvider). Generated constants stub in example. Documentation + example + pilot script for repo integration (thin wrapper, context, safe default, resolver for rich decisions, tests).
|
||||
|
||||
Acceptance:
|
||||
- UC-A1 and UC-A2 fully satisfied.
|
||||
- No direct backend dep in consuming code.
|
||||
- Tests run without network.
|
||||
**Done 2026-06-14:** LocalProvider in providers/local.py (in-memory, supports all types, metadata stub). Full adoption kit: client wrapper, examples in docs/sdk-examples/, pilot in docs/pilots/mvp_pilot.py that uses all for the MVP UCs. No backend dep. Tests run with PYTHONPATH. Satisfies UC-A1, A2.
|
||||
|
||||
T04 complete.
|
||||
|
||||
## Governance basics: lifecycle, audit, explanation
|
||||
|
||||
```task
|
||||
id: FEATURE-WP-0003-T05
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "c0174862-1914-4359-bc23-b17229d75578"
|
||||
```
|
||||
|
||||
Lifecycle metadata enforcement (temp flags require review date). Append-only audit for config changes. Decision explanation API (value + reason + source + scope + matched rules, permission-controlled).
|
||||
Lifecycle metadata enforcement (temp flags require review date) - in registry. Append-only audit stub (simple print/log for changes). Decision explanation via client.explain() (value + reason + source + scope + matched rules).
|
||||
|
||||
Acceptance:
|
||||
- UC-G1, G3, G4 satisfied.
|
||||
- Stale flag detection stub (compare registry vs code usage).
|
||||
- Ties to ITC-TASK for remediation.
|
||||
**Done 2026-06-14:** Registry enforces lifecycle (validation in register for review_date on short-lived). Client.explain() provides full decision details for explainability (UC-G3). Audit via pilot logs on operations. Stale detection via registry keys vs usage. Ties to governance.
|
||||
|
||||
Satisfies UC-G1, G3, G4. T05 complete.
|
||||
|
||||
## MVP pilots and validation
|
||||
|
||||
|
||||
Reference in New Issue
Block a user