First implementation

This commit is contained in:
2026-06-15 00:42:14 +02:00
parent 542d7c22be
commit fa39883aec
18 changed files with 1352 additions and 66 deletions

View File

@@ -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