Linked feedback: ADX-007
Problem
Enforcement is fragmented:
- metric/weight evidence is computed in
validator.ts
- token budget/module budget checks are computed in
bundler.ts
This creates multiple result shapes and multiple enforcement entry points.
Evidence:
- Metric evidence:
packages/adf/src/validator.ts:27
- Bundle budget checks:
packages/adf/src/bundler.ts:252
Scope
- Introduce a single evaluator API (e.g.
evaluateEvidence(...)) under packages/adf/src/evidence.ts.
- Combine:
- metric constraint results (pass/warn/fail)
- weight summary
- token budget utilization
- per-module budget overruns
- advisory-only module warnings
- Update bundler and CLI evidence flows to consume shared evaluator output.
Acceptance Criteria
- One typed result envelope is used by both bundle and evidence flows.
- Validator semantics for metric status remain backward compatible.
- No loss of fields currently emitted in bundle/evidence outputs.
- Tests cover both metric and budget enforcement in one pipeline.
Test Plan
pnpm run test --filter @stackbilt/adf
- Add tests for:
- under/at/over ceiling metric statuses
- bundle token budget utilization
- per-module budget overrun emission
- advisory-only module warnings
Linked feedback: ADX-007
Problem
Enforcement is fragmented:
validator.tsbundler.tsThis creates multiple result shapes and multiple enforcement entry points.
Evidence:
packages/adf/src/validator.ts:27packages/adf/src/bundler.ts:252Scope
evaluateEvidence(...)) underpackages/adf/src/evidence.ts.Acceptance Criteria
Test Plan
pnpm run test --filter @stackbilt/adf