@ztothez/design-engineering 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +15 -0
- package/README.md +448 -0
- package/ROADMAP.md +127 -0
- package/SKILL.md +698 -0
- package/V2-ROADMAP.md +431 -0
- package/V3-ROADMAP.md +605 -0
- package/V4-ROADMAP.md +283 -0
- package/clean-room-ux-design-spec.md +1431 -0
- package/dist/cli/aggregate-gates.d.ts +2 -0
- package/dist/cli/aggregate-gates.js +86 -0
- package/dist/cli/aggregate-gates.js.map +1 -0
- package/dist/cli/assess-maintainer-review.d.ts +2 -0
- package/dist/cli/assess-maintainer-review.js +72 -0
- package/dist/cli/assess-maintainer-review.js.map +1 -0
- package/dist/cli/audit.d.ts +2 -0
- package/dist/cli/audit.js +71 -0
- package/dist/cli/audit.js.map +1 -0
- package/dist/cli/compile-comparison-review.d.ts +2 -0
- package/dist/cli/compile-comparison-review.js +154 -0
- package/dist/cli/compile-comparison-review.js.map +1 -0
- package/dist/cli/compile-plan.d.ts +2 -0
- package/dist/cli/compile-plan.js +66 -0
- package/dist/cli/compile-plan.js.map +1 -0
- package/dist/cli/evaluate-corpus.d.ts +2 -0
- package/dist/cli/evaluate-corpus.js +65 -0
- package/dist/cli/evaluate-corpus.js.map +1 -0
- package/dist/cli/generate-react.d.ts +2 -0
- package/dist/cli/generate-react.js +83 -0
- package/dist/cli/generate-react.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +58 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/portfolio.d.ts +2 -0
- package/dist/cli/portfolio.js +316 -0
- package/dist/cli/portfolio.js.map +1 -0
- package/dist/cli/quality-gate.d.ts +2 -0
- package/dist/cli/quality-gate.js +131 -0
- package/dist/cli/quality-gate.js.map +1 -0
- package/dist/cli/repair-react.d.ts +2 -0
- package/dist/cli/repair-react.js +163 -0
- package/dist/cli/repair-react.js.map +1 -0
- package/dist/cli/review-heuristics.d.ts +2 -0
- package/dist/cli/review-heuristics.js +68 -0
- package/dist/cli/review-heuristics.js.map +1 -0
- package/dist/cli/validate-brief.d.ts +2 -0
- package/dist/cli/validate-brief.js +58 -0
- package/dist/cli/validate-brief.js.map +1 -0
- package/dist/cli/validate-comparison.d.ts +2 -0
- package/dist/cli/validate-comparison.js +68 -0
- package/dist/cli/validate-comparison.js.map +1 -0
- package/dist/cli/validate-contract.d.ts +2 -0
- package/dist/cli/validate-contract.js +54 -0
- package/dist/cli/validate-contract.js.map +1 -0
- package/dist/cli/validate-design.d.ts +2 -0
- package/dist/cli/validate-design.js +53 -0
- package/dist/cli/validate-design.js.map +1 -0
- package/dist/cli/validate-information.d.ts +2 -0
- package/dist/cli/validate-information.js +53 -0
- package/dist/cli/validate-information.js.map +1 -0
- package/dist/cli/validate-trust.d.ts +2 -0
- package/dist/cli/validate-trust.js +53 -0
- package/dist/cli/validate-trust.js.map +1 -0
- package/dist/cli/verify-ui.d.ts +2 -0
- package/dist/cli/verify-ui.js +181 -0
- package/dist/cli/verify-ui.js.map +1 -0
- package/dist/src/acceptance/evaluator.d.ts +13 -0
- package/dist/src/acceptance/evaluator.js +201 -0
- package/dist/src/acceptance/evaluator.js.map +1 -0
- package/dist/src/acceptance/loader.d.ts +2 -0
- package/dist/src/acceptance/loader.js +18 -0
- package/dist/src/acceptance/loader.js.map +1 -0
- package/dist/src/acceptance/report.d.ts +2 -0
- package/dist/src/acceptance/report.js +18 -0
- package/dist/src/acceptance/report.js.map +1 -0
- package/dist/src/acceptance/schema.d.ts +64 -0
- package/dist/src/acceptance/schema.js +57 -0
- package/dist/src/acceptance/schema.js.map +1 -0
- package/dist/src/acceptance/types.d.ts +47 -0
- package/dist/src/acceptance/types.js +2 -0
- package/dist/src/acceptance/types.js.map +1 -0
- package/dist/src/aggregate/report.d.ts +2 -0
- package/dist/src/aggregate/report.js +33 -0
- package/dist/src/aggregate/report.js.map +1 -0
- package/dist/src/aggregate/runner.d.ts +2 -0
- package/dist/src/aggregate/runner.js +165 -0
- package/dist/src/aggregate/runner.js.map +1 -0
- package/dist/src/aggregate/schema.d.ts +182 -0
- package/dist/src/aggregate/schema.js +54 -0
- package/dist/src/aggregate/schema.js.map +1 -0
- package/dist/src/aggregate/types.d.ts +57 -0
- package/dist/src/aggregate/types.js +2 -0
- package/dist/src/aggregate/types.js.map +1 -0
- package/dist/src/audit/policy.d.ts +3 -0
- package/dist/src/audit/policy.js +45 -0
- package/dist/src/audit/policy.js.map +1 -0
- package/dist/src/audit/report.d.ts +2 -0
- package/dist/src/audit/report.js +32 -0
- package/dist/src/audit/report.js.map +1 -0
- package/dist/src/audit/rules/accessibility-name.d.ts +2 -0
- package/dist/src/audit/rules/accessibility-name.js +64 -0
- package/dist/src/audit/rules/accessibility-name.js.map +1 -0
- package/dist/src/audit/rules/component-size.d.ts +2 -0
- package/dist/src/audit/rules/component-size.js +27 -0
- package/dist/src/audit/rules/component-size.js.map +1 -0
- package/dist/src/audit/rules/credential-placeholder.d.ts +2 -0
- package/dist/src/audit/rules/credential-placeholder.js +83 -0
- package/dist/src/audit/rules/credential-placeholder.js.map +1 -0
- package/dist/src/audit/rules/helpers.d.ts +16 -0
- package/dist/src/audit/rules/helpers.js +64 -0
- package/dist/src/audit/rules/helpers.js.map +1 -0
- package/dist/src/audit/rules/index.d.ts +2 -0
- package/dist/src/audit/rules/index.js +23 -0
- package/dist/src/audit/rules/index.js.map +1 -0
- package/dist/src/audit/rules/interactive-integrity.d.ts +2 -0
- package/dist/src/audit/rules/interactive-integrity.js +111 -0
- package/dist/src/audit/rules/interactive-integrity.js.map +1 -0
- package/dist/src/audit/rules/mixed-responsibilities.d.ts +2 -0
- package/dist/src/audit/rules/mixed-responsibilities.js +39 -0
- package/dist/src/audit/rules/mixed-responsibilities.js.map +1 -0
- package/dist/src/audit/rules/mock-production-path.d.ts +2 -0
- package/dist/src/audit/rules/mock-production-path.js +39 -0
- package/dist/src/audit/rules/mock-production-path.js.map +1 -0
- package/dist/src/audit/rules/network-state.d.ts +2 -0
- package/dist/src/audit/rules/network-state.js +39 -0
- package/dist/src/audit/rules/network-state.js.map +1 -0
- package/dist/src/audit/rules/operational-claim.d.ts +2 -0
- package/dist/src/audit/rules/operational-claim.js +94 -0
- package/dist/src/audit/rules/operational-claim.js.map +1 -0
- package/dist/src/audit/rules/placeholder-interaction.d.ts +2 -0
- package/dist/src/audit/rules/placeholder-interaction.js +46 -0
- package/dist/src/audit/rules/placeholder-interaction.js.map +1 -0
- package/dist/src/audit/rules/raw-design-values.d.ts +2 -0
- package/dist/src/audit/rules/raw-design-values.js +97 -0
- package/dist/src/audit/rules/raw-design-values.js.map +1 -0
- package/dist/src/audit/scanner.d.ts +2 -0
- package/dist/src/audit/scanner.js +215 -0
- package/dist/src/audit/scanner.js.map +1 -0
- package/dist/src/audit/types.d.ts +62 -0
- package/dist/src/audit/types.js +2 -0
- package/dist/src/audit/types.js.map +1 -0
- package/dist/src/comparison/evaluator.d.ts +2 -0
- package/dist/src/comparison/evaluator.js +478 -0
- package/dist/src/comparison/evaluator.js.map +1 -0
- package/dist/src/comparison/loader.d.ts +3 -0
- package/dist/src/comparison/loader.js +26 -0
- package/dist/src/comparison/loader.js.map +1 -0
- package/dist/src/comparison/maintainer.d.ts +47 -0
- package/dist/src/comparison/maintainer.js +218 -0
- package/dist/src/comparison/maintainer.js.map +1 -0
- package/dist/src/comparison/report.d.ts +2 -0
- package/dist/src/comparison/report.js +48 -0
- package/dist/src/comparison/report.js.map +1 -0
- package/dist/src/comparison/schema.d.ts +464 -0
- package/dist/src/comparison/schema.js +502 -0
- package/dist/src/comparison/schema.js.map +1 -0
- package/dist/src/contracts/archetypes.d.ts +21 -0
- package/dist/src/contracts/archetypes.js +102 -0
- package/dist/src/contracts/archetypes.js.map +1 -0
- package/dist/src/contracts/journeys.d.ts +7 -0
- package/dist/src/contracts/journeys.js +32 -0
- package/dist/src/contracts/journeys.js.map +1 -0
- package/dist/src/contracts/report.d.ts +2 -0
- package/dist/src/contracts/report.js +33 -0
- package/dist/src/contracts/report.js.map +1 -0
- package/dist/src/contracts/schema.d.ts +1038 -0
- package/dist/src/contracts/schema.js +385 -0
- package/dist/src/contracts/schema.js.map +1 -0
- package/dist/src/contracts/validator.d.ts +12 -0
- package/dist/src/contracts/validator.js +303 -0
- package/dist/src/contracts/validator.js.map +1 -0
- package/dist/src/corpus/evaluator.d.ts +2 -0
- package/dist/src/corpus/evaluator.js +203 -0
- package/dist/src/corpus/evaluator.js.map +1 -0
- package/dist/src/corpus/loader.d.ts +2 -0
- package/dist/src/corpus/loader.js +20 -0
- package/dist/src/corpus/loader.js.map +1 -0
- package/dist/src/corpus/report.d.ts +2 -0
- package/dist/src/corpus/report.js +33 -0
- package/dist/src/corpus/report.js.map +1 -0
- package/dist/src/corpus/schema.d.ts +316 -0
- package/dist/src/corpus/schema.js +269 -0
- package/dist/src/corpus/schema.js.map +1 -0
- package/dist/src/design-intelligence/loader.d.ts +2 -0
- package/dist/src/design-intelligence/loader.js +21 -0
- package/dist/src/design-intelligence/loader.js.map +1 -0
- package/dist/src/design-intelligence/report.d.ts +2 -0
- package/dist/src/design-intelligence/report.js +36 -0
- package/dist/src/design-intelligence/report.js.map +1 -0
- package/dist/src/design-intelligence/schema.d.ts +838 -0
- package/dist/src/design-intelligence/schema.js +854 -0
- package/dist/src/design-intelligence/schema.js.map +1 -0
- package/dist/src/design-intelligence/validator.d.ts +2 -0
- package/dist/src/design-intelligence/validator.js +1371 -0
- package/dist/src/design-intelligence/validator.js.map +1 -0
- package/dist/src/design-plan/compiler.d.ts +8 -0
- package/dist/src/design-plan/compiler.js +288 -0
- package/dist/src/design-plan/compiler.js.map +1 -0
- package/dist/src/design-plan/report.d.ts +2 -0
- package/dist/src/design-plan/report.js +28 -0
- package/dist/src/design-plan/report.js.map +1 -0
- package/dist/src/design-plan/schema.d.ts +202 -0
- package/dist/src/design-plan/schema.js +76 -0
- package/dist/src/design-plan/schema.js.map +1 -0
- package/dist/src/generation/loader.d.ts +2 -0
- package/dist/src/generation/loader.js +21 -0
- package/dist/src/generation/loader.js.map +1 -0
- package/dist/src/generation/policy.d.ts +12 -0
- package/dist/src/generation/policy.js +62 -0
- package/dist/src/generation/policy.js.map +1 -0
- package/dist/src/generation/react-typescript.d.ts +6 -0
- package/dist/src/generation/react-typescript.js +538 -0
- package/dist/src/generation/react-typescript.js.map +1 -0
- package/dist/src/generation/report.d.ts +2 -0
- package/dist/src/generation/report.js +21 -0
- package/dist/src/generation/report.js.map +1 -0
- package/dist/src/generation/schema.d.ts +44 -0
- package/dist/src/generation/schema.js +50 -0
- package/dist/src/generation/schema.js.map +1 -0
- package/dist/src/generation/templates/tokens.d.ts +1 -0
- package/dist/src/generation/templates/tokens.js +59 -0
- package/dist/src/generation/templates/tokens.js.map +1 -0
- package/dist/src/heuristics/evaluator.d.ts +2 -0
- package/dist/src/heuristics/evaluator.js +65 -0
- package/dist/src/heuristics/evaluator.js.map +1 -0
- package/dist/src/heuristics/loader.d.ts +2 -0
- package/dist/src/heuristics/loader.js +21 -0
- package/dist/src/heuristics/loader.js.map +1 -0
- package/dist/src/heuristics/report.d.ts +3 -0
- package/dist/src/heuristics/report.js +31 -0
- package/dist/src/heuristics/report.js.map +1 -0
- package/dist/src/heuristics/schema.d.ts +198 -0
- package/dist/src/heuristics/schema.js +197 -0
- package/dist/src/heuristics/schema.js.map +1 -0
- package/dist/src/information-design/loader.d.ts +2 -0
- package/dist/src/information-design/loader.js +21 -0
- package/dist/src/information-design/loader.js.map +1 -0
- package/dist/src/information-design/report.d.ts +2 -0
- package/dist/src/information-design/report.js +27 -0
- package/dist/src/information-design/report.js.map +1 -0
- package/dist/src/information-design/schema.d.ts +370 -0
- package/dist/src/information-design/schema.js +329 -0
- package/dist/src/information-design/schema.js.map +1 -0
- package/dist/src/information-design/validator.d.ts +2 -0
- package/dist/src/information-design/validator.js +242 -0
- package/dist/src/information-design/validator.js.map +1 -0
- package/dist/src/interface-trust/loader.d.ts +2 -0
- package/dist/src/interface-trust/loader.js +21 -0
- package/dist/src/interface-trust/loader.js.map +1 -0
- package/dist/src/interface-trust/report.d.ts +2 -0
- package/dist/src/interface-trust/report.js +26 -0
- package/dist/src/interface-trust/report.js.map +1 -0
- package/dist/src/interface-trust/schema.d.ts +299 -0
- package/dist/src/interface-trust/schema.js +238 -0
- package/dist/src/interface-trust/schema.js.map +1 -0
- package/dist/src/interface-trust/validator.d.ts +2 -0
- package/dist/src/interface-trust/validator.js +283 -0
- package/dist/src/interface-trust/validator.js.map +1 -0
- package/dist/src/portfolio/adapter-report.d.ts +3 -0
- package/dist/src/portfolio/adapter-report.js +38 -0
- package/dist/src/portfolio/adapter-report.js.map +1 -0
- package/dist/src/portfolio/adapters.d.ts +37 -0
- package/dist/src/portfolio/adapters.js +325 -0
- package/dist/src/portfolio/adapters.js.map +1 -0
- package/dist/src/portfolio/evidence.d.ts +9 -0
- package/dist/src/portfolio/evidence.js +233 -0
- package/dist/src/portfolio/evidence.js.map +1 -0
- package/dist/src/portfolio/files.d.ts +8 -0
- package/dist/src/portfolio/files.js +77 -0
- package/dist/src/portfolio/files.js.map +1 -0
- package/dist/src/portfolio/fixture-server.d.ts +11 -0
- package/dist/src/portfolio/fixture-server.js +131 -0
- package/dist/src/portfolio/fixture-server.js.map +1 -0
- package/dist/src/portfolio/loader.d.ts +2 -0
- package/dist/src/portfolio/loader.js +21 -0
- package/dist/src/portfolio/loader.js.map +1 -0
- package/dist/src/portfolio/mcp.d.ts +186 -0
- package/dist/src/portfolio/mcp.js +117 -0
- package/dist/src/portfolio/mcp.js.map +1 -0
- package/dist/src/portfolio/promotion-schema.d.ts +220 -0
- package/dist/src/portfolio/promotion-schema.js +148 -0
- package/dist/src/portfolio/promotion-schema.js.map +1 -0
- package/dist/src/portfolio/promotion.d.ts +4 -0
- package/dist/src/portfolio/promotion.js +160 -0
- package/dist/src/portfolio/promotion.js.map +1 -0
- package/dist/src/portfolio/qualification-schema.d.ts +268 -0
- package/dist/src/portfolio/qualification-schema.js +112 -0
- package/dist/src/portfolio/qualification-schema.js.map +1 -0
- package/dist/src/portfolio/qualification.d.ts +4 -0
- package/dist/src/portfolio/qualification.js +157 -0
- package/dist/src/portfolio/qualification.js.map +1 -0
- package/dist/src/portfolio/registry.d.ts +34 -0
- package/dist/src/portfolio/registry.js +240 -0
- package/dist/src/portfolio/registry.js.map +1 -0
- package/dist/src/portfolio/report.d.ts +4 -0
- package/dist/src/portfolio/report.js +47 -0
- package/dist/src/portfolio/report.js.map +1 -0
- package/dist/src/portfolio/run-schema.d.ts +135 -0
- package/dist/src/portfolio/run-schema.js +81 -0
- package/dist/src/portfolio/run-schema.js.map +1 -0
- package/dist/src/portfolio/runner.d.ts +118 -0
- package/dist/src/portfolio/runner.js +423 -0
- package/dist/src/portfolio/runner.js.map +1 -0
- package/dist/src/portfolio/schema.d.ts +251 -0
- package/dist/src/portfolio/schema.js +317 -0
- package/dist/src/portfolio/schema.js.map +1 -0
- package/dist/src/portfolio/snapshot.d.ts +89 -0
- package/dist/src/portfolio/snapshot.js +548 -0
- package/dist/src/portfolio/snapshot.js.map +1 -0
- package/dist/src/portfolio/taxonomy-schema.d.ts +215 -0
- package/dist/src/portfolio/taxonomy-schema.js +74 -0
- package/dist/src/portfolio/taxonomy-schema.js.map +1 -0
- package/dist/src/portfolio/taxonomy.d.ts +5 -0
- package/dist/src/portfolio/taxonomy.js +236 -0
- package/dist/src/portfolio/taxonomy.js.map +1 -0
- package/dist/src/portfolio/vault.d.ts +53 -0
- package/dist/src/portfolio/vault.js +176 -0
- package/dist/src/portfolio/vault.js.map +1 -0
- package/dist/src/product-brief/loader.d.ts +2 -0
- package/dist/src/product-brief/loader.js +21 -0
- package/dist/src/product-brief/loader.js.map +1 -0
- package/dist/src/product-brief/report.d.ts +2 -0
- package/dist/src/product-brief/report.js +22 -0
- package/dist/src/product-brief/report.js.map +1 -0
- package/dist/src/product-brief/schema.d.ts +367 -0
- package/dist/src/product-brief/schema.js +272 -0
- package/dist/src/product-brief/schema.js.map +1 -0
- package/dist/src/product-brief/validator.d.ts +2 -0
- package/dist/src/product-brief/validator.js +251 -0
- package/dist/src/product-brief/validator.js.map +1 -0
- package/dist/src/product.d.ts +7 -0
- package/dist/src/product.js +28 -0
- package/dist/src/product.js.map +1 -0
- package/dist/src/quality-gate/report.d.ts +2 -0
- package/dist/src/quality-gate/report.js +46 -0
- package/dist/src/quality-gate/report.js.map +1 -0
- package/dist/src/quality-gate/runner.d.ts +2 -0
- package/dist/src/quality-gate/runner.js +175 -0
- package/dist/src/quality-gate/runner.js.map +1 -0
- package/dist/src/quality-gate/schema.d.ts +75 -0
- package/dist/src/quality-gate/schema.js +37 -0
- package/dist/src/quality-gate/schema.js.map +1 -0
- package/dist/src/quality-gate/types.d.ts +49 -0
- package/dist/src/quality-gate/types.js +2 -0
- package/dist/src/quality-gate/types.js.map +1 -0
- package/dist/src/repair/loader.d.ts +2 -0
- package/dist/src/repair/loader.js +11 -0
- package/dist/src/repair/loader.js.map +1 -0
- package/dist/src/repair/policy.d.ts +16 -0
- package/dist/src/repair/policy.js +65 -0
- package/dist/src/repair/policy.js.map +1 -0
- package/dist/src/repair/report.d.ts +2 -0
- package/dist/src/repair/report.js +32 -0
- package/dist/src/repair/report.js.map +1 -0
- package/dist/src/repair/runner.d.ts +17 -0
- package/dist/src/repair/runner.js +511 -0
- package/dist/src/repair/runner.js.map +1 -0
- package/dist/src/repair/schema.d.ts +264 -0
- package/dist/src/repair/schema.js +202 -0
- package/dist/src/repair/schema.js.map +1 -0
- package/dist/src/retrieval/report.d.ts +2 -0
- package/dist/src/retrieval/report.js +21 -0
- package/dist/src/retrieval/report.js.map +1 -0
- package/dist/src/retrieval/schema.d.ts +123 -0
- package/dist/src/retrieval/schema.js +77 -0
- package/dist/src/retrieval/schema.js.map +1 -0
- package/dist/src/retrieval/search.d.ts +26 -0
- package/dist/src/retrieval/search.js +415 -0
- package/dist/src/retrieval/search.js.map +1 -0
- package/dist/src/runtime/advanced-checks.d.ts +6 -0
- package/dist/src/runtime/advanced-checks.js +487 -0
- package/dist/src/runtime/advanced-checks.js.map +1 -0
- package/dist/src/runtime/composition-checks.d.ts +5 -0
- package/dist/src/runtime/composition-checks.js +307 -0
- package/dist/src/runtime/composition-checks.js.map +1 -0
- package/dist/src/runtime/interface-checks.d.ts +12 -0
- package/dist/src/runtime/interface-checks.js +224 -0
- package/dist/src/runtime/interface-checks.js.map +1 -0
- package/dist/src/runtime/policy.d.ts +13 -0
- package/dist/src/runtime/policy.js +97 -0
- package/dist/src/runtime/policy.js.map +1 -0
- package/dist/src/runtime/report.d.ts +2 -0
- package/dist/src/runtime/report.js +48 -0
- package/dist/src/runtime/report.js.map +1 -0
- package/dist/src/runtime/schema.d.ts +406 -0
- package/dist/src/runtime/schema.js +308 -0
- package/dist/src/runtime/schema.js.map +1 -0
- package/dist/src/runtime/types.d.ts +177 -0
- package/dist/src/runtime/types.js +2 -0
- package/dist/src/runtime/types.js.map +1 -0
- package/dist/src/runtime/verifier.d.ts +2 -0
- package/dist/src/runtime/verifier.js +1201 -0
- package/dist/src/runtime/verifier.js.map +1 -0
- package/dist/src/server.d.ts +2 -0
- package/dist/src/server.js +1352 -0
- package/dist/src/server.js.map +1 -0
- package/docs/installation.md +337 -0
- package/knowledge-base/INDEX.md +285 -0
- package/knowledge-base/benchmarks/aegisops/CALIBRATION.md +52 -0
- package/knowledge-base/benchmarks/aegisops/MANIFEST.md +56 -0
- package/knowledge-base/benchmarks/aegisops/SOURCE-EVIDENCE.md +45 -0
- package/knowledge-base/benchmarks/aegisops/acceptance-criteria.md +42 -0
- package/knowledge-base/benchmarks/aegisops/anti-patterns.md +19 -0
- package/knowledge-base/benchmarks/aegisops/attestations.template.yaml +3 -0
- package/knowledge-base/benchmarks/aegisops/attestations.yaml +115 -0
- package/knowledge-base/benchmarks/aegisops/journeys.json +91 -0
- package/knowledge-base/benchmarks/aegisops/product-contract.yaml +328 -0
- package/knowledge-base/benchmarks/azure-optimizer/SOURCE-EVIDENCE.md +26 -0
- package/knowledge-base/benchmarks/azure-optimizer/V2-IMPLEMENTATION.md +39 -0
- package/knowledge-base/benchmarks/azure-optimizer/acceptance-criteria.md +23 -0
- package/knowledge-base/benchmarks/azure-optimizer/anti-patterns.md +13 -0
- package/knowledge-base/benchmarks/azure-optimizer/journeys.json +88 -0
- package/knowledge-base/benchmarks/azure-optimizer/product-contract.yaml +216 -0
- package/knowledge-base/benchmarks/azure-optimizer/v2-human-review-methodology.yaml +171 -0
- package/knowledge-base/benchmarks/azure-optimizer/v2-journeys.json +139 -0
- package/knowledge-base/benchmarks/corpus/PROVENANCE.md +21 -0
- package/knowledge-base/benchmarks/corpus/README.md +30 -0
- package/knowledge-base/benchmarks/corpus/cases/anti-slop-negative/package.json +9 -0
- package/knowledge-base/benchmarks/corpus/cases/anti-slop-negative/src/FakeDashboard.tsx +10 -0
- package/knowledge-base/benchmarks/corpus/cases/anti-slop-positive/package.json +9 -0
- package/knowledge-base/benchmarks/corpus/cases/anti-slop-positive/src/Progress.tsx +15 -0
- package/knowledge-base/benchmarks/corpus/cases/architecture-negative/package.json +9 -0
- package/knowledge-base/benchmarks/corpus/cases/architecture-negative/src/OperationsPanel.tsx +40 -0
- package/knowledge-base/benchmarks/corpus/cases/architecture-positive/package.json +9 -0
- package/knowledge-base/benchmarks/corpus/cases/architecture-positive/src/Dashboard.tsx +17 -0
- package/knowledge-base/benchmarks/corpus/cases/architecture-positive/src/theme.css +15 -0
- package/knowledge-base/benchmarks/corpus/cases/task-incomplete/SOURCE-EVIDENCE.md +3 -0
- package/knowledge-base/benchmarks/corpus/cases/task-incomplete/journeys.json +20 -0
- package/knowledge-base/benchmarks/corpus/cases/task-incomplete/product-contract.yaml +78 -0
- package/knowledge-base/benchmarks/corpus/corpus.schema.yaml +159 -0
- package/knowledge-base/benchmarks/corpus/corpus.yaml +209 -0
- package/knowledge-base/benchmarks/interface-quality/README.md +26 -0
- package/knowledge-base/benchmarks/interface-quality/SOLO-MAINTAINER-TRACK.md +35 -0
- package/knowledge-base/benchmarks/interface-quality/comparison-methodology-v1.1.schema.yaml +288 -0
- package/knowledge-base/benchmarks/interface-quality/comparison-methodology.schema.yaml +235 -0
- package/knowledge-base/benchmarks/interface-quality/comparison-methodology.template.yaml +181 -0
- package/knowledge-base/benchmarks/interface-quality/evidence/example-runtime-report.json +11 -0
- package/knowledge-base/benchmarks/interface-quality/review-session.schema.yaml +14 -0
- package/knowledge-base/benchmarks/interface-quality/review.schema.yaml +296 -0
- package/knowledge-base/benchmarks/interface-quality/review.template.yaml +43 -0
- package/knowledge-base/benchmarks/portfolio-corpus/ADAPTERS.md +68 -0
- package/knowledge-base/benchmarks/portfolio-corpus/PORTFOLIO-RUNNER.md +131 -0
- package/knowledge-base/benchmarks/portfolio-corpus/PRODUCT-TASK-CONTRACTS.md +29 -0
- package/knowledge-base/benchmarks/portfolio-corpus/PROMOTED-RULES.md +31 -0
- package/knowledge-base/benchmarks/portfolio-corpus/archetype-profiles.yaml +26 -0
- package/knowledge-base/benchmarks/portfolio-corpus/product-task-profile.schema.yaml +105 -0
- package/knowledge-base/benchmarks/portfolio-corpus/registry.schema.yaml +188 -0
- package/knowledge-base/benchmarks/portfolio-corpus/registry.template.yaml +63 -0
- package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/component-size-abstention.json +10 -0
- package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/component-size-negative.json +10 -0
- package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/component-size-positive.json +10 -0
- package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/interactive-integrity-abstention.json +10 -0
- package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/interactive-integrity-negative.json +10 -0
- package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/interactive-integrity-positive.json +10 -0
- package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/raw-design-values-abstention.json +10 -0
- package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/raw-design-values-negative.json +10 -0
- package/knowledge-base/benchmarks/portfolio-corpus/rule-fixtures/raw-design-values-positive.json +10 -0
- package/knowledge-base/benchmarks/portfolio-corpus/rule-holdout-evaluation.template.json +14 -0
- package/knowledge-base/benchmarks/portfolio-corpus/rule-promotion-evidence.template.json +24 -0
- package/knowledge-base/benchmarks/portfolio-corpus/v3-command-evidence.template.json +17 -0
- package/knowledge-base/benchmarks/portfolio-corpus/v3-qualification-evidence.template.json +29 -0
- package/knowledge-base/benchmarks/scenestart/CALIBRATION.md +95 -0
- package/knowledge-base/benchmarks/scenestart/MANIFEST.md +53 -0
- package/knowledge-base/benchmarks/scenestart/SOURCE-EVIDENCE.md +43 -0
- package/knowledge-base/benchmarks/scenestart/acceptance-criteria.md +59 -0
- package/knowledge-base/benchmarks/scenestart/anti-patterns.md +26 -0
- package/knowledge-base/benchmarks/scenestart/attestations.template.yaml +3 -0
- package/knowledge-base/benchmarks/scenestart/attestations.yaml +21 -0
- package/knowledge-base/benchmarks/scenestart/human-review.md +99 -0
- package/knowledge-base/benchmarks/scenestart/human-review.template.md +105 -0
- package/knowledge-base/benchmarks/scenestart/journeys.json +141 -0
- package/knowledge-base/benchmarks/scenestart/product-contract.yaml +427 -0
- package/knowledge-base/dependencies.yaml +69 -0
- package/knowledge-base/design-intelligence/MASTER.md +87 -0
- package/knowledge-base/design-intelligence/asset-generation.md +66 -0
- package/knowledge-base/design-intelligence/brand-systems.md +69 -0
- package/knowledge-base/design-intelligence/closed-loop-repair.md +95 -0
- package/knowledge-base/design-intelligence/design-deliverable.schema.yaml +1194 -0
- package/knowledge-base/design-intelligence/design-deliverable.template.yaml +591 -0
- package/knowledge-base/design-intelligence/design-plan.md +78 -0
- package/knowledge-base/design-intelligence/design-plan.schema.yaml +621 -0
- package/knowledge-base/design-intelligence/figma-production.md +63 -0
- package/knowledge-base/design-intelligence/generation-adapter.md +72 -0
- package/knowledge-base/design-intelligence/generation-adapter.schema.yaml +47 -0
- package/knowledge-base/design-intelligence/iconography.md +46 -0
- package/knowledge-base/design-intelligence/information-design.md +104 -0
- package/knowledge-base/design-intelligence/information-design.schema.yaml +390 -0
- package/knowledge-base/design-intelligence/information-design.template.yaml +281 -0
- package/knowledge-base/design-intelligence/interaction-recovery-verification.md +72 -0
- package/knowledge-base/design-intelligence/interface-trust.md +103 -0
- package/knowledge-base/design-intelligence/interface-trust.schema.yaml +263 -0
- package/knowledge-base/design-intelligence/interface-trust.template.yaml +173 -0
- package/knowledge-base/design-intelligence/licensing-and-provenance.md +59 -0
- package/knowledge-base/design-intelligence/presentation-design.md +56 -0
- package/knowledge-base/design-intelligence/product-design-brief.md +67 -0
- package/knowledge-base/design-intelligence/product-design-brief.schema.yaml +279 -0
- package/knowledge-base/design-intelligence/product-design-brief.template.yaml +225 -0
- package/knowledge-base/design-intelligence/repair-request.schema.yaml +95 -0
- package/knowledge-base/design-intelligence/repair-request.template.yaml +39 -0
- package/knowledge-base/design-intelligence/visual-accessibility.md +56 -0
- package/knowledge-base/design-intelligence/visual-polish.md +172 -0
- package/knowledge-base/maintained/architecture/MASTER.md +22 -0
- package/knowledge-base/maintained/architecture/component-boundaries.md +30 -0
- package/knowledge-base/maintained/architecture/product-platforms.md +25 -0
- package/knowledge-base/maintained/architecture/quality-attributes-and-evaluation.md +35 -0
- package/knowledge-base/maintained/product-patterns/MASTER.md +10 -0
- package/knowledge-base/maintained/product-patterns/ai-workspaces.md +26 -0
- package/knowledge-base/maintained/product-patterns/operational-dashboards.md +22 -0
- package/knowledge-base/provenance.yaml +196 -0
- package/knowledge-base/retrieval-scope.yaml +43 -0
- package/knowledge-base/usability-evaluation/HEURISTIC_EVALUATION.md +115 -0
- package/knowledge-base/usability-evaluation/heuristic-review.schema.yaml +210 -0
- package/knowledge-base/usability-evaluation/heuristic-review.template.yaml +37 -0
- package/package.json +133 -0
package/V3-ROADMAP.md
ADDED
|
@@ -0,0 +1,605 @@
|
|
|
1
|
+
# ZtotheZ Design Engineering V3 Roadmap
|
|
2
|
+
|
|
3
|
+
V3 turns the user's existing product portfolio into a local, evidence-producing benchmark program.
|
|
4
|
+
Its purpose is to test whether ZtotheZ Design Engineering generalizes across real product domains,
|
|
5
|
+
stacks, interface types, and maturity levels without modifying, copying, or packaging the original
|
|
6
|
+
projects.
|
|
7
|
+
|
|
8
|
+
[`SKILL.md`](SKILL.md) remains the authoritative operating instruction. [`ROADMAP.md`](ROADMAP.md)
|
|
9
|
+
and [`V2-ROADMAP.md`](V2-ROADMAP.md) remain the evidence records for the completed V1 and V2
|
|
10
|
+
engineering programs. V3 must preserve every V1 and V2 quality, evidence, packaging, and clean-room
|
|
11
|
+
boundary.
|
|
12
|
+
|
|
13
|
+
## Status Definitions
|
|
14
|
+
|
|
15
|
+
- **Done:** every deliverable and completion criterion has current passing evidence.
|
|
16
|
+
- **Partial:** implementation exists, but at least one required criterion is incomplete.
|
|
17
|
+
- **Not started:** no roadmap-specific implementation evidence exists.
|
|
18
|
+
- **Deferred:** deliberately outside the current release scope and not a release blocker.
|
|
19
|
+
|
|
20
|
+
## Program Outcome
|
|
21
|
+
|
|
22
|
+
V3 must answer four questions with reproducible evidence:
|
|
23
|
+
|
|
24
|
+
1. Does the system find useful, accurate design-engineering problems across unrelated products?
|
|
25
|
+
2. Does it abstain when a rule is unsupported, inapplicable, or cannot be verified?
|
|
26
|
+
3. Do promoted rules improve held-out products without overfitting to Azure Optimizer, AegisOPS,
|
|
27
|
+
SceneStart, or one frontend stack?
|
|
28
|
+
4. Can all benchmarking run without changing an original project or exposing private source, data,
|
|
29
|
+
screenshots, credentials, or client information?
|
|
30
|
+
|
|
31
|
+
V3 is a benchmark and system-improvement program. It is not permission to refactor the source
|
|
32
|
+
projects, ingest them into the distributable knowledge base, train on their implementation, or
|
|
33
|
+
publish their artifacts.
|
|
34
|
+
|
|
35
|
+
## Source Classes
|
|
36
|
+
|
|
37
|
+
The local registry may discover candidates from these user-authorized root classes:
|
|
38
|
+
|
|
39
|
+
| Root class | Intended benchmark value | Default handling |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| `Studio/clients/` | Client sites and production-facing workflows | Private, local-only, explicit project opt-in |
|
|
42
|
+
| `Studio/fullstack/` | Full-stack products, portfolio sites, and alternate implementations | Local-only, canonical project selection |
|
|
43
|
+
| `Studio/personal/` | Personal tools and complex application workflows | Private, exclude user data and credentials |
|
|
44
|
+
| `Studio/portfolio/` | Existing AegisOPS, Azure Optimizer, SceneStart, and visual baselines | Reuse existing contracts where available |
|
|
45
|
+
| `AI/` | AI workspaces, analysis tools, and mixed-stack systems | First-party projects only; exclude vendor, model, and research mirrors |
|
|
46
|
+
| `apps/` | Active utility applications and shared design-system consumers | Deduplicate against personal and shared roots |
|
|
47
|
+
|
|
48
|
+
Absolute paths belong only in a gitignored local registry. They must never appear in the npm
|
|
49
|
+
package, offline release, public evidence, retrieval index, or generated knowledge documents.
|
|
50
|
+
|
|
51
|
+
## Non-Negotiable Safety Rules
|
|
52
|
+
|
|
53
|
+
1. Treat every registered source root as read-only.
|
|
54
|
+
2. Never run installs, formatters, builds, tests, migrations, development servers, browser sessions,
|
|
55
|
+
or cleanup commands with an original project as the working directory.
|
|
56
|
+
3. Run executable stages only in a disposable snapshot owned by this repository's local benchmark
|
|
57
|
+
workspace.
|
|
58
|
+
4. Record source state before and after every run. Fail the run if tracked content, untracked
|
|
59
|
+
content, file metadata covered by policy, or repository status changes.
|
|
60
|
+
5. Never read or copy `.env` files, credentials, keys, browser profiles, databases, uploads, user
|
|
61
|
+
records, model weights, dependency trees, build output, or operating-system metadata.
|
|
62
|
+
6. Do not contact production services. Browser journeys use declared local fixtures, mocks, or
|
|
63
|
+
disconnected states with truthful disclosure.
|
|
64
|
+
7. Do not publish client artifacts or private screenshots. Publication requires an explicit
|
|
65
|
+
per-project policy in the local registry.
|
|
66
|
+
8. Do not add project source to BM25 retrieval, MCP knowledge reads, package files, release archives,
|
|
67
|
+
or skill instructions.
|
|
68
|
+
9. Do not copy project-specific code, components, visual styling, content, or brand assets into the
|
|
69
|
+
maintained system. Promote only independently authored, generalized rules supported by evidence.
|
|
70
|
+
10. Remediation output is advisory. Emit reports or patch files into the benchmark workspace and
|
|
71
|
+
apply nothing to an original project without a separate explicit user request.
|
|
72
|
+
|
|
73
|
+
## Roadmap Items
|
|
74
|
+
|
|
75
|
+
### 1. Local Corpus Registry And Classification
|
|
76
|
+
|
|
77
|
+
Status: **Done**
|
|
78
|
+
|
|
79
|
+
Implemented evidence: `knowledge-base/benchmarks/portfolio-corpus/` contains a portable version 1.0
|
|
80
|
+
schema and machine-neutral template. `src/portfolio/` validates the runtime schema, canonical root
|
|
81
|
+
and project paths, ownership, confidentiality, publication policy, cohorts, capabilities, path
|
|
82
|
+
patterns, entrypoints, duplicate and nested roots, duplicate projects, and real-path containment.
|
|
83
|
+
The `portfolio validate-registry` and `portfolio inventory` CLI commands expose local reports without
|
|
84
|
+
including absolute paths. The ignored local registry defines all six approved root classes and
|
|
85
|
+
enables only AegisOPS, Azure Optimizer, and SceneStart, which already have maintained benchmark
|
|
86
|
+
contracts. Metadata-only discovery currently identifies 20 manifest-bearing candidates after
|
|
87
|
+
vendor, research, dependency, model, backup, and comparison-tree exclusions.
|
|
88
|
+
|
|
89
|
+
Create a versioned public schema and a gitignored local registry. Discovery may report candidate
|
|
90
|
+
metadata, but a project becomes benchmark-eligible only after an explicit registry entry declares
|
|
91
|
+
its boundaries.
|
|
92
|
+
|
|
93
|
+
Required registry fields:
|
|
94
|
+
|
|
95
|
+
- Stable project ID and canonical real path.
|
|
96
|
+
- Ownership: `first-party`, `client-authorized`, `third-party-reference`, or `unknown`.
|
|
97
|
+
- Confidentiality: `public`, `private-local`, or `restricted`.
|
|
98
|
+
- Publication policy for source excerpts, screenshots, machine reports, and aggregate metrics.
|
|
99
|
+
- Product domain, interface archetype, intended users, and primary tasks.
|
|
100
|
+
- Framework, package manager, application entrypoint, and supported benchmark stages.
|
|
101
|
+
- Fixture mode, allowed environment variables, local ports, and network policy.
|
|
102
|
+
- Include and exclude paths, with an explanation for every nonstandard inclusion.
|
|
103
|
+
- Source revision, dirty-state disclosure, and canonicalization key.
|
|
104
|
+
- Development-cohort, holdout-cohort, or excluded status.
|
|
105
|
+
|
|
106
|
+
Required behavior:
|
|
107
|
+
|
|
108
|
+
- Resolve every path through `realpath` and reject roots outside the six locally approved classes.
|
|
109
|
+
- Deduplicate mirrors, backups, symlinks, generated copies, and projects appearing under both
|
|
110
|
+
`Studio/personal/` and `apps/`.
|
|
111
|
+
- Exclude dependency trees, build artifacts, backups, captures, models, research mirrors, IDE
|
|
112
|
+
distributions, and third-party comparison repositories by default.
|
|
113
|
+
- Require explicit review before enabling any `Studio/clients/` project.
|
|
114
|
+
- Preserve an exclusion reason instead of silently dropping an ineligible project.
|
|
115
|
+
|
|
116
|
+
Planned artifacts:
|
|
117
|
+
|
|
118
|
+
- `knowledge-base/benchmarks/portfolio-corpus/registry.schema.yaml`
|
|
119
|
+
- `knowledge-base/benchmarks/portfolio-corpus/registry.template.yaml`
|
|
120
|
+
- `.ztothez-design-local/portfolio-registry.yaml`
|
|
121
|
+
- `src/portfolio/`
|
|
122
|
+
- `zz-design portfolio inventory`
|
|
123
|
+
- `zz-design portfolio validate-registry`
|
|
124
|
+
|
|
125
|
+
Completion criteria:
|
|
126
|
+
|
|
127
|
+
- Every selected project has one canonical identity and explicit policy.
|
|
128
|
+
- Duplicate, nested, unknown-origin, and disallowed roots fail validation.
|
|
129
|
+
- The distributable template contains no machine-specific absolute path.
|
|
130
|
+
- Tests cover symlink escapes, path traversal, duplicate roots, private publication, and missing
|
|
131
|
+
ownership.
|
|
132
|
+
|
|
133
|
+
### 2. Read-Only Snapshot And Mutation Guard
|
|
134
|
+
|
|
135
|
+
Status: **Done**
|
|
136
|
+
|
|
137
|
+
Implemented evidence: `src/portfolio/snapshot.ts` captures deterministic source and scoped Git
|
|
138
|
+
state, preserves pre-existing dirty worktrees, records metadata-only guards for prohibited content,
|
|
139
|
+
copies only approved files, translates contained symlinks into the snapshot, rejects escaping
|
|
140
|
+
symlinks, verifies source state after copying and on close, and removes failed or completed
|
|
141
|
+
snapshots by default. The Linux process boundary uses Bubblewrap with the snapshot as the only
|
|
142
|
+
writable project mount, no original-source mount, network isolation by default, an environment
|
|
143
|
+
allowlist, disabled package lifecycle scripts by default, output ceilings, timeouts, and detached
|
|
144
|
+
process-group cleanup. Unsupported hosts fail explicitly instead of running without isolation.
|
|
145
|
+
|
|
146
|
+
Fourteen focused registry and snapshot tests cover traversal, ownership, duplicates, private paths,
|
|
147
|
+
secret and dependency exclusion, internal and external symlinks, source mutation, callback failure,
|
|
148
|
+
dirty and require-clean Git states, source-path denial inside the process sandbox, network policy,
|
|
149
|
+
and timeout cleanup. A real create-and-delete SceneStart snapshot copied 230 approved entries and
|
|
150
|
+
closed with the original source digest unchanged. No build, test, formatter, or application command
|
|
151
|
+
was run in that original project.
|
|
152
|
+
|
|
153
|
+
Build a non-destructive execution boundary before running any project command. Static source checks
|
|
154
|
+
may open approved files read-only. Every command that can write must run in an isolated snapshot.
|
|
155
|
+
|
|
156
|
+
Snapshot workflow:
|
|
157
|
+
|
|
158
|
+
1. Resolve and validate the registered source root.
|
|
159
|
+
2. Capture a pre-run source manifest with relative path, type, size, mode, modification time,
|
|
160
|
+
symlink target, and SHA-256 for approved regular files.
|
|
161
|
+
3. Capture Git status when the source is a Git worktree without requiring it to be clean.
|
|
162
|
+
4. Copy only approved source files into a unique workspace under
|
|
163
|
+
`.ztothez-design-benchmarks/workspaces/`.
|
|
164
|
+
5. Reject symlinks that resolve outside the source root.
|
|
165
|
+
6. Inject only declared fixture environment values into the snapshot.
|
|
166
|
+
7. Run installs, builds, tests, servers, and browser verification inside the snapshot.
|
|
167
|
+
8. Stop child processes and retain only policy-approved evidence.
|
|
168
|
+
9. Recompute the original source manifest and Git status.
|
|
169
|
+
10. Fail with a source-mutation error if any covered value changed.
|
|
170
|
+
|
|
171
|
+
Safety requirements:
|
|
172
|
+
|
|
173
|
+
- Original working trees may already be dirty. Preserve and compare that state; never clean it.
|
|
174
|
+
- Never call `git reset`, `git checkout`, `git clean`, package installation, or a formatter in an
|
|
175
|
+
original source root.
|
|
176
|
+
- Dependency lifecycle scripts are disabled by default and may be enabled only for a reviewed
|
|
177
|
+
adapter inside the snapshot.
|
|
178
|
+
- Network access is denied by default. An adapter may allow dependency installation, but product
|
|
179
|
+
runtime traffic remains local and fixture-bound.
|
|
180
|
+
- Benchmark cancellation and failure must still stop servers and perform the post-run mutation
|
|
181
|
+
check.
|
|
182
|
+
|
|
183
|
+
Completion criteria:
|
|
184
|
+
|
|
185
|
+
- A negative fixture that attempts to write into its source root is detected and fails.
|
|
186
|
+
- A dirty source repository remains byte-for-byte and status-for-status unchanged.
|
|
187
|
+
- Snapshot creation excludes secrets, data, dependencies, output, and external symlinks.
|
|
188
|
+
- Interrupted runs clean up processes without deleting or changing original files.
|
|
189
|
+
|
|
190
|
+
### 3. Stack And Capability Adapters
|
|
191
|
+
|
|
192
|
+
Status: **Done**
|
|
193
|
+
|
|
194
|
+
Implemented evidence: `src/portfolio/adapters.ts` defines six declarative adapters for React with
|
|
195
|
+
Vite or TanStack Router, Next.js, Angular, static web tools, Node plus Python full-stack products,
|
|
196
|
+
and source-only Python or desktop tools. Every adapter reports all eight benchmark capabilities as
|
|
197
|
+
`supported`, `unsupported`, or `not-applicable`. A supported executable stage requires both a
|
|
198
|
+
registry capability declaration and an exact registry command. Source audit is the only built-in
|
|
199
|
+
stage. Missing commands remain explicit limitations, while adapter, package-manager, stage, script,
|
|
200
|
+
path, and network-policy conflicts fail adapter validation.
|
|
201
|
+
|
|
202
|
+
The version 1.0 local registry contract now supports an explicit adapter and bounded per-stage
|
|
203
|
+
commands with relative working directories, timeouts, output ceilings, and dependency-network
|
|
204
|
+
declarations. Adapter policy permits only known executables and stage-specific package scripts.
|
|
205
|
+
Direct Node and Python execution requires a contained relative script and rejects eval flags and
|
|
206
|
+
parent traversal. Arguments are passed without a shell, and execution delegates to the Item 2
|
|
207
|
+
Bubblewrap snapshot boundary for environment allowlisting, network isolation, process-group
|
|
208
|
+
termination, diagnostic stream separation, and post-run source verification.
|
|
209
|
+
|
|
210
|
+
`zz-design portfolio capabilities --project ID` reports effective support without exposing local
|
|
211
|
+
paths. `zz-design portfolio run-stage --project ID --stage STAGE` executes only a validated command
|
|
212
|
+
inside a disposable snapshot and returns distinct passed, failed, timed-out, unsupported, and
|
|
213
|
+
not-applicable results. The three enabled local benchmarks now declare their stack adapters; their
|
|
214
|
+
undeclared executable commands are reported honestly as limitations rather than guessed from
|
|
215
|
+
package files.
|
|
216
|
+
|
|
217
|
+
Five focused adapter tests execute React/Vite, Next.js, Angular, and Node plus Python fixtures in
|
|
218
|
+
snapshots, verify source-only Python audit behavior, reject missing and unsafe commands, confirm
|
|
219
|
+
stdout and stderr separation, and prove timeout cleanup with unchanged source state. The complete
|
|
220
|
+
84-test suite, registry validation, clean-room independence check, package check, and diff check
|
|
221
|
+
pass. The adapter guide and portable registry schema are included in the package and provenance
|
|
222
|
+
manifest, while the machine-specific local registry remains excluded.
|
|
223
|
+
|
|
224
|
+
Support the corpus through declarative adapters rather than one hard-coded JavaScript workflow.
|
|
225
|
+
Initial adapters should cover the stacks found during discovery:
|
|
226
|
+
|
|
227
|
+
- React with Vite or TanStack Router.
|
|
228
|
+
- Next.js frontend applications.
|
|
229
|
+
- Angular applications.
|
|
230
|
+
- Static HTML, CSS, and JavaScript tools.
|
|
231
|
+
- Frontend plus Node or Python service applications.
|
|
232
|
+
- Source-only Python or desktop tools where browser verification is not applicable.
|
|
233
|
+
|
|
234
|
+
Each adapter must report capabilities independently:
|
|
235
|
+
|
|
236
|
+
```text
|
|
237
|
+
sourceAudit
|
|
238
|
+
typecheck
|
|
239
|
+
lint
|
|
240
|
+
unitTest
|
|
241
|
+
productionBuild
|
|
242
|
+
localFixtureServer
|
|
243
|
+
browserJourneys
|
|
244
|
+
exportVerification
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
An unavailable or inapplicable capability must be reported as `unsupported` or `not-applicable`, not
|
|
248
|
+
as passed and not as a product failure. Commands come from the local registry and adapter policy;
|
|
249
|
+
the benchmark runner must not guess and execute arbitrary package scripts.
|
|
250
|
+
|
|
251
|
+
Completion criteria:
|
|
252
|
+
|
|
253
|
+
- At least three frontend stacks and one full-stack fixture execute in snapshots.
|
|
254
|
+
- Source-only projects can produce useful audit evidence without browser claims.
|
|
255
|
+
- Missing commands, unsupported platforms, and unavailable services produce explicit limitations.
|
|
256
|
+
- Adapter tests prove command containment, timeout handling, process cleanup, and diagnostic output
|
|
257
|
+
separation.
|
|
258
|
+
|
|
259
|
+
### 4. Product-Task Benchmark Contracts
|
|
260
|
+
|
|
261
|
+
Status: **Done**
|
|
262
|
+
|
|
263
|
+
Implemented evidence: product-contract version `1.1` adds an archetype-aware `benchmark` profile
|
|
264
|
+
while preserving version `1.0` compatibility for legacy corpus fixtures. The profile declares one
|
|
265
|
+
of five archetypes, browser, desktop, or source-only interface scope, all seven V2 quality
|
|
266
|
+
dimensions as required or not applicable with reasons, primary product tasks, observable start and
|
|
267
|
+
success states, visible failure and recovery behavior, evidence requirements, comparison identity,
|
|
268
|
+
and a fixed evidence policy. Browser tasks must bind to an existing journey and verification
|
|
269
|
+
binding, a route, and a declared viewport no wider than 768 CSS pixels.
|
|
270
|
+
|
|
271
|
+
`src/contracts/archetypes.ts` owns the five independently authored archetype definitions and rejects
|
|
272
|
+
unsupported interface combinations or missing required dimensions. `src/contracts/validator.ts`
|
|
273
|
+
validates task actor, mode, state-machine, success-state, failure-state, journey, verification
|
|
274
|
+
binding, viewport, and duplicate references. Reports expose a `ready`, `legacy`, or `invalid` task
|
|
275
|
+
model plus primary, recovery, and narrow-viewport counts. Acceptance evaluation preserves the
|
|
276
|
+
declared boundary: absent journey evidence is `unverified`, executed failed behavior is `failed`,
|
|
277
|
+
and adapter-unavailable behavior remains a `limitation` rather than product evidence.
|
|
278
|
+
|
|
279
|
+
The portable artifacts under `knowledge-base/benchmarks/portfolio-corpus/` include
|
|
280
|
+
`PRODUCT-TASK-CONTRACTS.md`, `product-task-profile.schema.yaml`, and
|
|
281
|
+
`archetype-profiles.yaml`. The root skill, README, knowledge index, MCP product-contract report,
|
|
282
|
+
package, and provenance manifest route the same model. Comparison logic rejects legacy contracts,
|
|
283
|
+
different task-contract IDs, different archetypes, and materially different primary task intent or
|
|
284
|
+
observable success.
|
|
285
|
+
|
|
286
|
+
AegisOPS and Azure Optimizer now expose ready operational-dashboard task models. SceneStart exposes
|
|
287
|
+
a ready full-stack-workflow model with separate Workshop-to-Studio continuity and offline export
|
|
288
|
+
tasks. Each retained benchmark declares at least one primary task, failure and recovery state, and
|
|
289
|
+
narrow browser path using its existing actors, modes, state machines, journeys, bindings, and
|
|
290
|
+
viewports. No original portfolio source was read or changed for this migration.
|
|
291
|
+
|
|
292
|
+
Focused tests validate all five archetypes in positive and negative form, reject missing primary,
|
|
293
|
+
recovery, browser, dimension, state, and narrow-viewport declarations, validate all three real
|
|
294
|
+
benchmarks, reject unrelated product ranking, and distinguish missing evidence from executed
|
|
295
|
+
failure. The complete 90-test suite, clean-room independence check, package check, installed MCP
|
|
296
|
+
smoke, and diff check pass. The package contains 381 files; provenance covers 97 artifacts and
|
|
297
|
+
reference isolation inspects 206 files.
|
|
298
|
+
|
|
299
|
+
Benchmark products against their actual purpose instead of applying a generic dashboard checklist.
|
|
300
|
+
Each enabled project needs a compact local contract describing users, tasks, data boundaries,
|
|
301
|
+
routes, states, and observable completion.
|
|
302
|
+
|
|
303
|
+
Required archetype profiles:
|
|
304
|
+
|
|
305
|
+
- Operational dashboard or control surface.
|
|
306
|
+
- AI workspace, analysis tool, or generated-result workflow.
|
|
307
|
+
- Content, portfolio, or client-facing website.
|
|
308
|
+
- Utility, converter, tracker, or personal productivity application.
|
|
309
|
+
- Full-stack transactional or multi-user workflow.
|
|
310
|
+
|
|
311
|
+
Every profile reuses the V2 trust, information, visual, accessibility, responsive, state, and
|
|
312
|
+
maintainability dimensions but activates only relevant requirements. Product contracts must define
|
|
313
|
+
task success from observable state, not screenshot appearance or implementation-specific selectors
|
|
314
|
+
alone.
|
|
315
|
+
|
|
316
|
+
Completion criteria:
|
|
317
|
+
|
|
318
|
+
- At least four archetype profiles validate against positive and negative fixtures.
|
|
319
|
+
- Each real benchmark declares at least one primary task, one failure or recovery state, and one
|
|
320
|
+
narrow-viewport path when a browser interface exists.
|
|
321
|
+
- Contracts distinguish missing evidence from failed product behavior.
|
|
322
|
+
- No project is ranked against another project with a materially different task contract.
|
|
323
|
+
|
|
324
|
+
### 5. Local Portfolio Benchmark Runner
|
|
325
|
+
|
|
326
|
+
Status: **Done**
|
|
327
|
+
|
|
328
|
+
Implemented evidence:
|
|
329
|
+
|
|
330
|
+
- `src/portfolio/runner.ts` executes every selected project independently inside a disposable
|
|
331
|
+
snapshot, retains `report.json`, and verifies the original source digest after execution.
|
|
332
|
+
- `zz-design portfolio baseline`, `benchmark`, `verify-unchanged`, and `report` are implemented.
|
|
333
|
+
- Reports retain registry and source digests, revisions, adapter identity, declared commands and
|
|
334
|
+
timeouts, environment policy, timestamps, exit status, fixture state, browser viewports,
|
|
335
|
+
structured findings and limitations, artifact checksums, and a normalized result fingerprint.
|
|
336
|
+
- Exit codes distinguish findings, limitations, unsafe configuration, and source mutation.
|
|
337
|
+
- `tests/portfolio-runner.test.ts` proves mixed-stack continuation, report retention, deterministic
|
|
338
|
+
fixture fingerprints, unsafe-project isolation, post-run source verification, loopback fixture
|
|
339
|
+
readiness, consolidated quality-gate delegation, four-viewport capture, checksummed screenshots,
|
|
340
|
+
and fixture shutdown.
|
|
341
|
+
- Optional structured heuristic reviews preserve unresolved severity 3-4 acceptance work.
|
|
342
|
+
- `list_portfolio_projects` and `get_portfolio_benchmark_report` provide explicitly enabled,
|
|
343
|
+
read-only MCP summaries without absolute roots or benchmark execution.
|
|
344
|
+
|
|
345
|
+
Create one orchestrator that executes approved stages, records exact provenance, and delegates to
|
|
346
|
+
the existing contract, audit, browser, acceptance, heuristic, and quality-gate modules.
|
|
347
|
+
|
|
348
|
+
Planned commands:
|
|
349
|
+
|
|
350
|
+
```text
|
|
351
|
+
zz-design portfolio inventory
|
|
352
|
+
zz-design portfolio baseline --project PROJECT_ID
|
|
353
|
+
zz-design portfolio benchmark --cohort development
|
|
354
|
+
zz-design portfolio benchmark --cohort holdout
|
|
355
|
+
zz-design portfolio verify-unchanged --run RUN_ID
|
|
356
|
+
zz-design portfolio report --run RUN_ID
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
Planned MCP behavior:
|
|
360
|
+
|
|
361
|
+
- List registered project IDs and declared capabilities without exposing absolute paths.
|
|
362
|
+
- Read completed structured benchmark reports.
|
|
363
|
+
- Explain findings and evidence limitations.
|
|
364
|
+
- Never mutate source or start an executable benchmark through knowledge-retrieval tools.
|
|
365
|
+
- Require explicit local enablement before exposing private report summaries.
|
|
366
|
+
|
|
367
|
+
Every run records the tool version, registry digest, source digest, source revision, adapter,
|
|
368
|
+
commands, environment policy, timestamps, exit status, timeouts, browser viewport, fixture state,
|
|
369
|
+
findings, limitations, and artifact checksums.
|
|
370
|
+
|
|
371
|
+
Completion criteria:
|
|
372
|
+
|
|
373
|
+
- One command can benchmark a mixed-stack cohort without entering original roots.
|
|
374
|
+
- A failed project does not stop evidence retention for other projects.
|
|
375
|
+
- Exit codes distinguish product findings, verifier limitations, unsafe configuration, and source
|
|
376
|
+
mutation.
|
|
377
|
+
- Reports are deterministic for identical fixtures and normalize machine-specific paths.
|
|
378
|
+
|
|
379
|
+
Completion evidence: all criteria are covered by `portfolio-runner.test.ts`,
|
|
380
|
+
`portfolio-fixture-server.test.ts`, `portfolio-mcp.test.ts`, and the MCP regression suite.
|
|
381
|
+
|
|
382
|
+
### 6. Private Evidence Vault And Publication Controls
|
|
383
|
+
|
|
384
|
+
Status: **Done**
|
|
385
|
+
|
|
386
|
+
Implemented evidence:
|
|
387
|
+
|
|
388
|
+
- `src/portfolio/vault.ts` classifies evidence (`private-raw`, `redacted-report`, `approved-screenshot`, `public-synthetic`, `aggregate-metrics`), scans for secrets and prohibited absolute paths before retention, redacts machine paths/query parameters, enforces screenshot publication policy, and provides `deleteProjectEvidence`.
|
|
389
|
+
- `src/portfolio/run-schema.ts` extends `artifactSchema` with `evidenceClass`, `policyDecision`, and `sourceDigest`, updating report version to `1.2.0`.
|
|
390
|
+
- `src/portfolio/runner.ts` enforces pre-retention scanning, output redaction, screenshot opt-in policy, and artifact provenance binding.
|
|
391
|
+
- `cli/portfolio.ts` provides `zz-design portfolio prune-evidence --run ID [--project ID]`.
|
|
392
|
+
- `tests/portfolio-vault.test.ts` proves secret/path leakage detection, machine path redaction, screenshot opt-in enforcement, evidence pruning without schema corruption, and exclusion boundaries across packaging, Git, BM25 retrieval, and MCP tools.
|
|
393
|
+
|
|
394
|
+
Keep full local evidence outside the distributable package. Store it under
|
|
395
|
+
`.ztothez-design-benchmarks/`, indexed by run ID and project ID, with checksums and retention rules.
|
|
396
|
+
|
|
397
|
+
Evidence classes:
|
|
398
|
+
|
|
399
|
+
- Private raw source observations and logs.
|
|
400
|
+
- Redacted local machine reports.
|
|
401
|
+
- Screenshots and exports approved for local review.
|
|
402
|
+
- Public synthetic fixtures.
|
|
403
|
+
- Aggregate release metrics that contain no private project identity or content.
|
|
404
|
+
|
|
405
|
+
Required controls:
|
|
406
|
+
|
|
407
|
+
- Scan retained text for secrets and prohibited absolute paths before accepting a run.
|
|
408
|
+
- Redact environment values, query parameters, user records, local usernames, and source roots.
|
|
409
|
+
- Keep screenshot retention disabled for private client projects unless explicitly enabled.
|
|
410
|
+
- Bind every retained artifact to its source digest and policy decision.
|
|
411
|
+
- Prevent local registries, snapshots, private reports, and screenshots from entering npm packaging,
|
|
412
|
+
offline release, Git, BM25 retrieval, or MCP exact-file knowledge access.
|
|
413
|
+
- Permit deletion of a project's local evidence without damaging aggregate schema validity.
|
|
414
|
+
|
|
415
|
+
Completion criteria:
|
|
416
|
+
|
|
417
|
+
- Package, provenance, independence, and archive-removal tests prove local evidence exclusion.
|
|
418
|
+
- Secret and path leakage fixtures fail before evidence is retained.
|
|
419
|
+
- Public summaries remain valid after all private evidence is removed.
|
|
420
|
+
- Client projects default to zero publishable artifacts.
|
|
421
|
+
|
|
422
|
+
### 7. Cross-Product Evaluation And Failure Taxonomy
|
|
423
|
+
|
|
424
|
+
Status: **Done**
|
|
425
|
+
|
|
426
|
+
Implemented evidence:
|
|
427
|
+
|
|
428
|
+
- `src/portfolio/taxonomy-schema.ts` defines schemas for 9 core dimensions (`product-task`, `interface-trust`, `information-design`, `visual-polish`, `accessibility`, `responsive`, `architecture`, `runtime-reliability`, `audit-precision`), per-project/dimension metrics, recurrence taxonomy, maintainer annotations, and comparison validation.
|
|
429
|
+
- `src/portfolio/taxonomy.ts` implements `evaluateCrossProductTaxonomy` (mapping run stages and findings to dimensions, building recurrence taxonomy, stack/archetype coverage, and applying maintainer false-positive/negative annotations without deleting original findings) and `validateCrossProjectComparison` (validating baseline vs candidate comparability).
|
|
430
|
+
- `cli/portfolio.ts` provides `zz-design portfolio cross-product --run ID [--annotations PATH]`.
|
|
431
|
+
- `src/portfolio/mcp.ts` exposes `getCrossProductEvaluationForMcp` for opt-in read-only MCP access.
|
|
432
|
+
- `tests/portfolio-taxonomy.test.ts` proves 9-dimension breakdown without vanity score collapsing, limitation/abstention isolation from pass/fail totals, recurrence failure grouping across projects/domains, maintainer false-positive annotations without finding deletion, and strict cross-project baseline comparison validation.
|
|
433
|
+
|
|
434
|
+
Measure system behavior across projects without collapsing unrelated products into one vanity score.
|
|
435
|
+
Keep per-project and per-dimension results visible.
|
|
436
|
+
|
|
437
|
+
Core dimensions:
|
|
438
|
+
|
|
439
|
+
- Product-task completeness and state continuity.
|
|
440
|
+
- Truthful disclosure and data provenance.
|
|
441
|
+
- Information hierarchy and decision support.
|
|
442
|
+
- Visual-system consistency and composition evidence.
|
|
443
|
+
- Accessibility and keyboard operation.
|
|
444
|
+
- Responsive structure and text reflow.
|
|
445
|
+
- Architecture, coupling, and maintainability.
|
|
446
|
+
- Runtime reliability, recovery, and export integrity where applicable.
|
|
447
|
+
- Audit precision, actionable remediation, and correct abstention.
|
|
448
|
+
|
|
449
|
+
Required measures:
|
|
450
|
+
|
|
451
|
+
- Eligible checks, passed checks, findings, limitations, and abstentions per project.
|
|
452
|
+
- Finding recurrence across independent projects and product domains.
|
|
453
|
+
- Confirmed false-positive and false-negative records.
|
|
454
|
+
- Rule coverage by stack and archetype.
|
|
455
|
+
- Baseline-to-candidate deltas only when task, state, fixture, viewport, and tool version are
|
|
456
|
+
comparable.
|
|
457
|
+
|
|
458
|
+
Do not declare an overall aesthetic winner across unrelated products. Do not treat more findings as
|
|
459
|
+
proof that one project or stack is worse. Reports must distinguish product defects, unavailable
|
|
460
|
+
evidence, adapter gaps, and quality-gate defects.
|
|
461
|
+
|
|
462
|
+
Completion criteria:
|
|
463
|
+
|
|
464
|
+
- The taxonomy groups repeated failures without hiding project-specific context.
|
|
465
|
+
- Aggregate reports cannot count unsupported checks as passes or failures.
|
|
466
|
+
- Tests reject invalid cross-project comparisons and mixed baseline conditions.
|
|
467
|
+
- Maintainer corrections can label false positives without deleting the original finding.
|
|
468
|
+
|
|
469
|
+
### 8. Rule Promotion And Holdout Validation
|
|
470
|
+
|
|
471
|
+
Status: **Done**
|
|
472
|
+
|
|
473
|
+
Implemented evidence:
|
|
474
|
+
|
|
475
|
+
- `src/portfolio/promotion-schema.ts` now requires checksummed positive, negative, abstention,
|
|
476
|
+
existing-gate, promoted-artifact, and project-specific holdout evidence.
|
|
477
|
+
- `src/portfolio/promotion.ts` fails closed when cohort reports, source digests, fixture evidence,
|
|
478
|
+
required gates, or exact holdout coverage are missing. All-holdout abstention cannot establish
|
|
479
|
+
benefit or non-regression, and reports state whether evaluation completed.
|
|
480
|
+
- `cli/portfolio.ts` requires `--evidence`; MCP reads candidates and evidence only from its
|
|
481
|
+
configured private evidence root and verifies every referenced checksum.
|
|
482
|
+
- Focused tests cover promotion, rejection, missing evidence, incomplete recurrence, failed gates,
|
|
483
|
+
holdout regression, all-holdout abstention, traversal, checksum failure, and symlink escape.
|
|
484
|
+
- Local development run `v3-development-20260828-r6` and holdout run
|
|
485
|
+
`v3-holdout-20260828-r4` use the same locked registry digest, cover all 12 projects, retain zero
|
|
486
|
+
unsafe configurations and zero source mutations, and pass post-run source verification.
|
|
487
|
+
- Three independently authored recurrence candidates completed the full path and were promoted:
|
|
488
|
+
semantic token boundaries (`ZTDE-DESIGN-001`), interactive control integrity
|
|
489
|
+
(`ZTDE-SLOP-003`), and the component review threshold (`ZTDE-ARCH-001`).
|
|
490
|
+
- Nine maintained fixture specifications execute against the production audit engine. Their
|
|
491
|
+
positive, negative, and abstention outcomes pass deterministic regression coverage.
|
|
492
|
+
- Each candidate has checksummed candidate-specific reports for all three locked holdouts. The
|
|
493
|
+
retained results distinguish detected rule benefit from unaffected products; regression and
|
|
494
|
+
abstention paths remain covered by the fail-closed promotion regression suite.
|
|
495
|
+
- Documentation, report codes, tests, and migration guidance are retained in
|
|
496
|
+
`knowledge-base/benchmarks/portfolio-corpus/PROMOTED-RULES.md` and the maintained fixture set.
|
|
497
|
+
|
|
498
|
+
Use the development cohort to discover candidate improvements, then test them against projects that
|
|
499
|
+
were not used to author the rule.
|
|
500
|
+
|
|
501
|
+
A candidate rule may enter the maintained system only when:
|
|
502
|
+
|
|
503
|
+
1. It is independently authored and does not reproduce project implementation or proprietary
|
|
504
|
+
content.
|
|
505
|
+
2. The failure appears in at least three eligible projects across at least two product domains, or
|
|
506
|
+
a standards-backed safety requirement independently justifies it.
|
|
507
|
+
3. A focused positive fixture and negative fixture demonstrate the intended boundary.
|
|
508
|
+
4. False-positive analysis identifies legitimate exceptions and an abstention path.
|
|
509
|
+
5. Existing V1, V2, retrieval, corpus, MCP, package, and independence tests remain passing.
|
|
510
|
+
6. At least one held-out project benefits or remains correctly unaffected.
|
|
511
|
+
7. The original projects remain unchanged.
|
|
512
|
+
|
|
513
|
+
The runner must preserve rejected candidate rules and their reason. It must not tune thresholds until
|
|
514
|
+
all current projects pass, and a project finding does not authorize automatic source remediation.
|
|
515
|
+
|
|
516
|
+
Completion criteria:
|
|
517
|
+
|
|
518
|
+
- Development and holdout cohorts are locked before candidate-rule evaluation.
|
|
519
|
+
- At least three evidence-supported rule candidates complete the full promotion or rejection path.
|
|
520
|
+
- Holdout results identify regressions, unaffected products, and correct abstentions.
|
|
521
|
+
- Promoted rules include documentation, deterministic tests, report codes, and migration guidance.
|
|
522
|
+
|
|
523
|
+
### 9. V3 Qualification, CI, And Release
|
|
524
|
+
|
|
525
|
+
Status: **Done**
|
|
526
|
+
|
|
527
|
+
Implemented evidence:
|
|
528
|
+
|
|
529
|
+
- Qualification evidence is versioned, portable, checksummed, traversal-protected, and required by
|
|
530
|
+
both CLI and read-only MCP evaluation. Missing evidence and missing reports cannot default to pass.
|
|
531
|
+
- The evaluator enforces every numeric threshold, exact cohort coverage, source digests, zero source
|
|
532
|
+
mutation, explicit release gates, six CI fixture categories, three complete rule evaluations,
|
|
533
|
+
private-distribution evidence, benchmark execution paths, and prohibited claim boundaries.
|
|
534
|
+
- The finalized local registry validates with 12 eligible projects, 12 domains, 8 declared frontend
|
|
535
|
+
stacks, 5 archetypes, and 3 locked holdouts. Both retained cohort reports have complete project
|
|
536
|
+
coverage and pass post-run source verification.
|
|
537
|
+
- Local qualification against development run `v3-development-20260828-r6` and holdout run
|
|
538
|
+
`v3-holdout-20260828-r4` passes all criteria with 12 eligible projects, 12 domains, 8 stacks,
|
|
539
|
+
5 archetypes, 3 locked holdouts, 0 source mutations, and 0 private-distribution violations.
|
|
540
|
+
- Source-only evidence comes from the authorized local corpus. Browser-only and Node plus Python
|
|
541
|
+
full-stack execution are exercised through public synthetic products inside the same disposable
|
|
542
|
+
snapshot, process isolation, and source-mutation boundaries used by the portfolio runner. They
|
|
543
|
+
validate execution infrastructure without claiming a private product passed those stages.
|
|
544
|
+
- Checksummed command reports bind exact CI, release, benchmark-path, package, offline-release,
|
|
545
|
+
archive-removal, and privacy checks to retained stdout and stderr logs.
|
|
546
|
+
- `npm run v3:evidence` reproduces the private local evidence and final redacted report. The ignored
|
|
547
|
+
evidence root contains 3 complete promotion reports and a V3 qualification report with all 14
|
|
548
|
+
criteria passing and no prohibited claims.
|
|
549
|
+
- GitHub Actions executes `npm run v3:evidence -- --ci-only` and retains the eight-category public
|
|
550
|
+
synthetic evidence artifact. No local registry, portfolio source, or private report enters CI.
|
|
551
|
+
|
|
552
|
+
Qualify the benchmark system without placing private local projects on GitHub Actions. CI uses only
|
|
553
|
+
synthetic fixtures and explicitly approved public benchmark artifacts. Real portfolio runs remain
|
|
554
|
+
local, and release evidence contains only redacted aggregate summaries.
|
|
555
|
+
|
|
556
|
+
V3 qualification targets:
|
|
557
|
+
|
|
558
|
+
- At least 12 eligible first-party or client-authorized projects.
|
|
559
|
+
- At least five product domains, three frontend stacks, and four interface archetypes.
|
|
560
|
+
- At least three locked holdout projects not used to author promoted rules.
|
|
561
|
+
- At least one source-only, one browser-only, and one full-stack benchmark path.
|
|
562
|
+
- Zero detected changes in every original source root before and after each run.
|
|
563
|
+
- Zero private paths, secrets, client content, or project source files in the npm and offline release.
|
|
564
|
+
- All existing V1 and V2 gates remain passing.
|
|
565
|
+
|
|
566
|
+
Required CI fixtures:
|
|
567
|
+
|
|
568
|
+
- Registry traversal, duplicate-root, and ownership violations.
|
|
569
|
+
- Snapshot mutation, external symlink, secret-copy, and interrupted-process violations.
|
|
570
|
+
- Adapter success, unsupported capability, timeout, and failed build cases.
|
|
571
|
+
- Cross-product comparison misuse and unsupported-score inflation.
|
|
572
|
+
- Private evidence packaging and retrieval leakage.
|
|
573
|
+
- Rule-promotion success, rejection, false-positive, and holdout-regression paths.
|
|
574
|
+
|
|
575
|
+
V3 may be marked done when the targets pass and the retained report supports only these claims:
|
|
576
|
+
|
|
577
|
+
- The benchmark runner operated non-destructively on the declared corpus.
|
|
578
|
+
- The quality system produced evidence across the declared stacks and domains.
|
|
579
|
+
- Promoted rules passed their fixtures and locked holdout evaluation.
|
|
580
|
+
- Private source and evidence were excluded from distribution.
|
|
581
|
+
|
|
582
|
+
V3 must not claim independent human validation, representative-user validation, universal design
|
|
583
|
+
quality, or superiority over every external tool unless separate evidence explicitly supports that
|
|
584
|
+
claim.
|
|
585
|
+
|
|
586
|
+
## Execution Order
|
|
587
|
+
|
|
588
|
+
Implement Items 1 and 2 first. No real project command may run before both registry validation and
|
|
589
|
+
the mutation guard pass their negative fixtures.
|
|
590
|
+
|
|
591
|
+
Then implement Items 3 through 6 and baseline a small development cohort using disposable
|
|
592
|
+
snapshots. Expand to the full eligible corpus only after evidence privacy and process cleanup pass.
|
|
593
|
+
|
|
594
|
+
Implement Items 7 and 8 from retained baseline evidence. Lock the holdout cohort before promoting
|
|
595
|
+
any new rule. Complete Item 9 only after local qualification and public synthetic CI both pass.
|
|
596
|
+
|
|
597
|
+
## Current Status
|
|
598
|
+
|
|
599
|
+
Items 1 through 9 are **Done**.
|
|
600
|
+
|
|
601
|
+
The portfolio runner produced complete development and locked-holdout reports for all 12 authorized
|
|
602
|
+
projects with unchanged original sources. Three independently authored rules completed executable
|
|
603
|
+
fixture and candidate-specific holdout evaluation. The final local report passes every V3
|
|
604
|
+
qualification criterion, while public CI exercises only synthetic fixtures and approved maintained
|
|
605
|
+
artifacts.
|