@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
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Licensing And Provenance
|
|
2
|
+
|
|
3
|
+
Maintain a per-asset evidence trail so design output can be reviewed, replaced, and distributed deliberately. This workflow organizes evidence; it is not legal advice.
|
|
4
|
+
|
|
5
|
+
## Required Asset Record
|
|
6
|
+
|
|
7
|
+
For every logo, icon, image, illustration, texture, chart, screenshot, font, audio file, or video, record:
|
|
8
|
+
|
|
9
|
+
- Stable asset identifier and local path.
|
|
10
|
+
- Origin and creator.
|
|
11
|
+
- Source URL when applicable.
|
|
12
|
+
- Rights status: `approved`, `pending`, `rejected`, or `unknown`.
|
|
13
|
+
- Rights basis: ownership, contract, provider terms, SPDX license, public domain, or permission.
|
|
14
|
+
- Evidence path or source URL.
|
|
15
|
+
- Attribution and restrictions.
|
|
16
|
+
- Reviewer and review date when approval requires human authority.
|
|
17
|
+
- Alternative-content classification.
|
|
18
|
+
|
|
19
|
+
Only `approved` assets may ship. Pending, rejected, or unknown assets are blockers, not warnings.
|
|
20
|
+
|
|
21
|
+
## Source-Specific Evidence
|
|
22
|
+
|
|
23
|
+
### Original And Commissioned
|
|
24
|
+
|
|
25
|
+
Record creator, agreement or employment basis, assignment terms when relevant, delivery date, and source files. Do not assume payment alone transfers every right.
|
|
26
|
+
|
|
27
|
+
### Open Source And Open Content
|
|
28
|
+
|
|
29
|
+
Use an SPDX identifier or expression when the applicable license is represented by SPDX. Preserve copyright notices, attribution, modification notices, source links, and license text as required. Record channel restrictions that cannot be expressed by the identifier alone.
|
|
30
|
+
|
|
31
|
+
### Licensed Libraries And Stock
|
|
32
|
+
|
|
33
|
+
Record the exact asset, account or purchase evidence, license version, download date, allowed channels, seat or audience limits, modification terms, and attribution requirements. A generic link to the provider home page is insufficient.
|
|
34
|
+
|
|
35
|
+
### Public Domain
|
|
36
|
+
|
|
37
|
+
Record the source and the basis for the public-domain claim. Review trademarks, privacy, publicity, cultural-property, and jurisdiction-specific constraints separately.
|
|
38
|
+
|
|
39
|
+
### User-Provided Assets
|
|
40
|
+
|
|
41
|
+
Record the user's representation or permission and any distribution boundary. Do not interpret possession as permission to publish.
|
|
42
|
+
|
|
43
|
+
### Generated Assets
|
|
44
|
+
|
|
45
|
+
Record provider, model, provider-terms evidence, prompt artifact, reference assets, human contributions, and post-processing. Review confusing similarity, embedded marks, recognizable people, sensitive contexts, and jurisdiction or channel requirements. Do not promise copyright protection or non-infringement based only on generation metadata.
|
|
46
|
+
|
|
47
|
+
## Operational Rules
|
|
48
|
+
|
|
49
|
+
1. Keep evidence outside generated public assets when it contains private account or contractual data.
|
|
50
|
+
2. Make asset replacement possible through stable IDs and semantic references.
|
|
51
|
+
3. Re-review assets when channels, territory, audience size, monetization, or provider terms change.
|
|
52
|
+
4. Keep rejected assets for audit only when policy permits; never leave them in production asset directories.
|
|
53
|
+
5. Treat missing evidence as unresolved even when an asset looks generic.
|
|
54
|
+
|
|
55
|
+
## Machine-Readable Identifiers
|
|
56
|
+
|
|
57
|
+
SPDX identifiers make standard licenses easier to record consistently, but they do not replace required notices or a review of whether the license fits the intended use. See [SPDX guidance for license information](https://spdx.dev/learn/handling-license-info/) and the [SPDX License List](https://spdx.org/licenses/).
|
|
58
|
+
|
|
59
|
+
For current United States guidance on copyrightability and generative AI, consult the [U.S. Copyright Office AI initiative](https://www.copyright.gov/ai/). Obtain qualified advice for consequential releases or jurisdiction-specific questions.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Presentation Design
|
|
2
|
+
|
|
3
|
+
Design a presentation as a sequence of audience decisions supported by reusable masters, not as disconnected decorated slides.
|
|
4
|
+
|
|
5
|
+
## Step 1: Define The Communication Contract
|
|
6
|
+
|
|
7
|
+
Record the audience, decision or outcome, delivery context, duration, aspect ratio, and distribution format. Separate what must be understood during delivery from what belongs in speaker notes or a companion document.
|
|
8
|
+
|
|
9
|
+
Write a one-sentence purpose for every slide. Remove slides that do not advance the narrative, support a decision, explain evidence, or enable action.
|
|
10
|
+
|
|
11
|
+
## Step 2: Build The Narrative
|
|
12
|
+
|
|
13
|
+
Use a structure appropriate to the task, such as:
|
|
14
|
+
|
|
15
|
+
1. Context and stakes.
|
|
16
|
+
2. User or system problem.
|
|
17
|
+
3. Evidence and constraints.
|
|
18
|
+
4. Proposed direction.
|
|
19
|
+
5. Trade-offs and alternatives.
|
|
20
|
+
6. Implementation or operating model.
|
|
21
|
+
7. Decision, owner, and next action.
|
|
22
|
+
|
|
23
|
+
Do not force this sequence onto reports, training, or status reviews when a different task model is clearer.
|
|
24
|
+
|
|
25
|
+
## Step 3: Create Masters
|
|
26
|
+
|
|
27
|
+
Define a small set of master layouts for recurring communication roles, such as title, section, statement, comparison, process, evidence, and closing. Each master controls margins, grid, title location, footer, page number, safe area, and reading order.
|
|
28
|
+
|
|
29
|
+
Use tokens for background, text, accent, status, spacing, and typography. Keep the brand present but subordinate to legibility and evidence.
|
|
30
|
+
|
|
31
|
+
## Step 4: Compose Slides
|
|
32
|
+
|
|
33
|
+
- Give each slide one primary message.
|
|
34
|
+
- Use a literal title that states the point, not a vague topic label.
|
|
35
|
+
- Prefer real product views, diagrams, and data over decorative stock imagery.
|
|
36
|
+
- Label charts directly and provide source, scope, units, and time range.
|
|
37
|
+
- Avoid screenshots with unreadable UI or unexplained highlights.
|
|
38
|
+
- Keep body text and diagrams readable at the expected viewing distance.
|
|
39
|
+
- Use builds and motion only when sequence is necessary to comprehension.
|
|
40
|
+
|
|
41
|
+
## Step 5: Make The Deck Accessible
|
|
42
|
+
|
|
43
|
+
Declare reading order for every slide. Use unique slide titles, sufficient text and non-text contrast, non-color cues, meaningful link text, and alternatives for informative visuals. Mark decorative media appropriately. Provide captions or transcripts for time-based media.
|
|
44
|
+
|
|
45
|
+
Do not place essential content only in speaker notes when the distributed deck must stand alone. Check the exported PDF or presentation file because reading order and alternatives can change during export.
|
|
46
|
+
|
|
47
|
+
## Step 6: Verify Delivery And Export
|
|
48
|
+
|
|
49
|
+
- Rehearse at the real display resolution and viewing distance.
|
|
50
|
+
- Check projection and low-quality screen conditions.
|
|
51
|
+
- Inspect all fonts, media, links, notes, page numbers, and transitions.
|
|
52
|
+
- Open exported formats independently.
|
|
53
|
+
- Confirm assets retain approved attribution and restrictions.
|
|
54
|
+
- Test keyboard progression and reading order in the delivery format.
|
|
55
|
+
|
|
56
|
+
The manifest validator checks master references, slide IDs, reading-order declarations, and asset references. It cannot inspect the actual deck file.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Product Design Brief Contract
|
|
2
|
+
|
|
3
|
+
Use this module before generating a new product interface, redesigning a consequential workflow, or
|
|
4
|
+
compiling downstream architecture and visual contracts. It turns product intent into a reviewable
|
|
5
|
+
input boundary and prevents an agent from filling missing users, data behavior, recovery, or success
|
|
6
|
+
criteria with generic UI conventions.
|
|
7
|
+
|
|
8
|
+
## Required Sequence
|
|
9
|
+
|
|
10
|
+
1. Record sources before conclusions. Classify user statements, research, analytics, existing
|
|
11
|
+
product behavior, technical evidence, standards, and agent assumptions separately.
|
|
12
|
+
2. State the current problem and desired outcome using source references. An agent assumption alone
|
|
13
|
+
cannot establish the product problem or primary audience.
|
|
14
|
+
3. Define included and excluded scope. Resolve contradictory scope before planning.
|
|
15
|
+
4. Identify at least one primary audience with concrete goals, operating context, constraints,
|
|
16
|
+
accessibility needs, expertise, and non-agent evidence.
|
|
17
|
+
5. Define measurable user, operational, business, or risk-reduction outcomes. Unknown baselines are
|
|
18
|
+
valid when their reason is explicit.
|
|
19
|
+
6. Model primary tasks with trigger, goal, frequency, criticality, inputs, data, success signal,
|
|
20
|
+
failure impact, and recovery. Consequential tasks must declare their data boundary.
|
|
21
|
+
7. Classify each data source as live, demo, hybrid, imported, cached, user input, or local static.
|
|
22
|
+
Declare latency, sensitivity, freshness, limitations, fallback, disclosure, and origin
|
|
23
|
+
preservation. Configuration is not proof that a live service is connected.
|
|
24
|
+
8. Declare every applicable state. Async and operational products generally need loading, empty,
|
|
25
|
+
success, error, partial, stale, and disconnected behavior. Sensitive products need unauthorized
|
|
26
|
+
behavior. State requirements are derived from the declared data rather than added decoratively.
|
|
27
|
+
9. Declare platforms, viewports, input methods, constraints, and prioritized requirements. A
|
|
28
|
+
responsive web product covers 375, 768, 1024, and 1440 CSS pixels plus keyboard, pointer, touch,
|
|
29
|
+
and assistive-technology operation.
|
|
30
|
+
10. Keep assumptions visible. Unresolved high-risk assumptions block generation; unresolved
|
|
31
|
+
medium-risk assumptions remain warnings.
|
|
32
|
+
11. Bind every must-have requirement and every task to an observable acceptance criterion. Naming a
|
|
33
|
+
human verification method does not create human evidence.
|
|
34
|
+
12. Decide whether product-task, interface-trust, information-design, and design-deliverable
|
|
35
|
+
contracts are planned, already exist, or are genuinely not applicable.
|
|
36
|
+
|
|
37
|
+
## Generation Boundary
|
|
38
|
+
|
|
39
|
+
A brief is generation-ready only when it passes semantic validation and has `status: validated`.
|
|
40
|
+
That status authorizes design planning, not production release. Continue through architecture,
|
|
41
|
+
interface trust, information design, visual design, implementation, browser verification, and the
|
|
42
|
+
quality gate.
|
|
43
|
+
|
|
44
|
+
Do not convert uncertainty into invented personas, fake metrics, unsupported live labels, generic
|
|
45
|
+
dashboard cards, or placeholder acceptance criteria. Record the uncertainty as an assumption,
|
|
46
|
+
assign risk, and define how it will be validated.
|
|
47
|
+
|
|
48
|
+
## Commands
|
|
49
|
+
|
|
50
|
+
Start from `product-design-brief.template.yaml`, then run:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm run validate-brief -- --brief path/to/product-design-brief.yaml
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
MCP clients can call `validate_product_design_brief`. External brief roots must be explicitly
|
|
57
|
+
listed in `ZTOTHEZ_DESIGN_BRIEF_ROOTS`. The tool is read-only and returns the same structured report
|
|
58
|
+
as the CLI.
|
|
59
|
+
|
|
60
|
+
## Evidence Limits
|
|
61
|
+
|
|
62
|
+
- Structural and semantic validation does not prove that a proposed product is desirable.
|
|
63
|
+
- A source reference proves traceability, not source quality.
|
|
64
|
+
- Agent assumptions remain agent evidence even when a contract is validated.
|
|
65
|
+
- Human-expert and representative-user acceptance methods require separately attributable evidence.
|
|
66
|
+
- Interactive success, accessibility, responsive composition, and truthful runtime behavior require
|
|
67
|
+
downstream implementation and browser evidence.
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
$schema: https://json-schema.org/draft/2020-12/schema
|
|
2
|
+
$id: https://ztothez.github.io/schemas/product-design-brief.schema.yaml
|
|
3
|
+
title: ZtotheZ Product Design Brief
|
|
4
|
+
type: object
|
|
5
|
+
additionalProperties: false
|
|
6
|
+
required: [version, id, product, status, preparedAt, preparedBy, evidenceSources, problem, scope, audiences, outcomes, dataSources, tasks, states, platforms, constraints, requirements, assumptions, acceptanceCriteria, downstreamContracts]
|
|
7
|
+
properties:
|
|
8
|
+
version: { const: "1.0" }
|
|
9
|
+
id: { $ref: "#/$defs/id" }
|
|
10
|
+
product: { $ref: "#/$defs/text" }
|
|
11
|
+
status: { enum: [draft, validated] }
|
|
12
|
+
preparedAt: { type: string, format: date-time }
|
|
13
|
+
preparedBy:
|
|
14
|
+
type: object
|
|
15
|
+
additionalProperties: false
|
|
16
|
+
required: [type, name]
|
|
17
|
+
properties:
|
|
18
|
+
type: { enum: [agent, human, mixed] }
|
|
19
|
+
name: { $ref: "#/$defs/text" }
|
|
20
|
+
evidenceSources:
|
|
21
|
+
type: array
|
|
22
|
+
minItems: 1
|
|
23
|
+
maxItems: 500
|
|
24
|
+
items: { $ref: "#/$defs/evidenceSource" }
|
|
25
|
+
problem:
|
|
26
|
+
type: object
|
|
27
|
+
additionalProperties: false
|
|
28
|
+
required: [statement, currentOutcome, desiredOutcome, evidenceRefs]
|
|
29
|
+
properties:
|
|
30
|
+
statement: { $ref: "#/$defs/longText" }
|
|
31
|
+
currentOutcome: { $ref: "#/$defs/longText" }
|
|
32
|
+
desiredOutcome: { $ref: "#/$defs/longText" }
|
|
33
|
+
evidenceRefs: { $ref: "#/$defs/nonEmptyRefs" }
|
|
34
|
+
scope:
|
|
35
|
+
type: object
|
|
36
|
+
additionalProperties: false
|
|
37
|
+
required: [included, excluded]
|
|
38
|
+
properties:
|
|
39
|
+
included: { $ref: "#/$defs/nonEmptyTextList" }
|
|
40
|
+
excluded: { $ref: "#/$defs/nonEmptyTextList" }
|
|
41
|
+
audiences:
|
|
42
|
+
type: array
|
|
43
|
+
minItems: 1
|
|
44
|
+
maxItems: 100
|
|
45
|
+
items: { $ref: "#/$defs/audience" }
|
|
46
|
+
outcomes:
|
|
47
|
+
type: array
|
|
48
|
+
minItems: 1
|
|
49
|
+
maxItems: 200
|
|
50
|
+
items: { $ref: "#/$defs/outcome" }
|
|
51
|
+
dataSources:
|
|
52
|
+
type: array
|
|
53
|
+
minItems: 1
|
|
54
|
+
maxItems: 500
|
|
55
|
+
items: { $ref: "#/$defs/dataSource" }
|
|
56
|
+
tasks:
|
|
57
|
+
type: array
|
|
58
|
+
minItems: 1
|
|
59
|
+
maxItems: 500
|
|
60
|
+
items: { $ref: "#/$defs/task" }
|
|
61
|
+
states:
|
|
62
|
+
type: array
|
|
63
|
+
minItems: 1
|
|
64
|
+
maxItems: 20
|
|
65
|
+
items: { $ref: "#/$defs/state" }
|
|
66
|
+
platforms:
|
|
67
|
+
type: array
|
|
68
|
+
minItems: 1
|
|
69
|
+
maxItems: 20
|
|
70
|
+
items: { $ref: "#/$defs/platform" }
|
|
71
|
+
constraints: { $ref: "#/$defs/textList" }
|
|
72
|
+
requirements:
|
|
73
|
+
type: array
|
|
74
|
+
minItems: 1
|
|
75
|
+
maxItems: 1000
|
|
76
|
+
items: { $ref: "#/$defs/requirement" }
|
|
77
|
+
assumptions:
|
|
78
|
+
type: array
|
|
79
|
+
maxItems: 500
|
|
80
|
+
items: { $ref: "#/$defs/assumption" }
|
|
81
|
+
acceptanceCriteria:
|
|
82
|
+
type: array
|
|
83
|
+
minItems: 1
|
|
84
|
+
maxItems: 2000
|
|
85
|
+
items: { $ref: "#/$defs/acceptanceCriterion" }
|
|
86
|
+
downstreamContracts:
|
|
87
|
+
type: array
|
|
88
|
+
minItems: 4
|
|
89
|
+
maxItems: 4
|
|
90
|
+
items: { $ref: "#/$defs/downstreamContract" }
|
|
91
|
+
$defs:
|
|
92
|
+
id: { type: string, pattern: "^[a-z0-9][a-z0-9-]{0,63}$" }
|
|
93
|
+
text: { type: string, minLength: 1, maxLength: 512 }
|
|
94
|
+
longText: { type: string, minLength: 1, maxLength: 1024 }
|
|
95
|
+
refs:
|
|
96
|
+
type: array
|
|
97
|
+
maxItems: 100
|
|
98
|
+
items: { $ref: "#/$defs/id" }
|
|
99
|
+
nonEmptyRefs:
|
|
100
|
+
type: array
|
|
101
|
+
minItems: 1
|
|
102
|
+
maxItems: 100
|
|
103
|
+
items: { $ref: "#/$defs/id" }
|
|
104
|
+
textList:
|
|
105
|
+
type: array
|
|
106
|
+
maxItems: 100
|
|
107
|
+
items: { $ref: "#/$defs/longText" }
|
|
108
|
+
nonEmptyTextList:
|
|
109
|
+
type: array
|
|
110
|
+
minItems: 1
|
|
111
|
+
maxItems: 100
|
|
112
|
+
items: { $ref: "#/$defs/longText" }
|
|
113
|
+
evidenceSource:
|
|
114
|
+
type: object
|
|
115
|
+
additionalProperties: false
|
|
116
|
+
required: [id, kind, description, owner]
|
|
117
|
+
properties:
|
|
118
|
+
id: { $ref: "#/$defs/id" }
|
|
119
|
+
kind: { enum: [user-provided, stakeholder, user-research, product-analytics, support-record, existing-product, technical-source, public-standard, agent-assumption] }
|
|
120
|
+
description: { $ref: "#/$defs/longText" }
|
|
121
|
+
location: { $ref: "#/$defs/longText" }
|
|
122
|
+
owner: { $ref: "#/$defs/text" }
|
|
123
|
+
audience:
|
|
124
|
+
type: object
|
|
125
|
+
additionalProperties: false
|
|
126
|
+
required: [id, role, priority, goals, contexts, constraints, accessibilityNeeds, expertise, evidenceRefs]
|
|
127
|
+
properties:
|
|
128
|
+
id: { $ref: "#/$defs/id" }
|
|
129
|
+
role: { $ref: "#/$defs/text" }
|
|
130
|
+
priority: { enum: [primary, secondary, affected] }
|
|
131
|
+
goals: { $ref: "#/$defs/textList" }
|
|
132
|
+
contexts: { $ref: "#/$defs/textList" }
|
|
133
|
+
constraints: { $ref: "#/$defs/textList" }
|
|
134
|
+
accessibilityNeeds: { $ref: "#/$defs/textList" }
|
|
135
|
+
expertise: { enum: [novice, intermediate, expert, mixed, unknown] }
|
|
136
|
+
evidenceRefs: { $ref: "#/$defs/nonEmptyRefs" }
|
|
137
|
+
outcome:
|
|
138
|
+
type: object
|
|
139
|
+
additionalProperties: false
|
|
140
|
+
required: [id, kind, statement, measure, evidenceRefs]
|
|
141
|
+
properties:
|
|
142
|
+
id: { $ref: "#/$defs/id" }
|
|
143
|
+
kind: { enum: [user, business, operational, risk-reduction] }
|
|
144
|
+
statement: { $ref: "#/$defs/longText" }
|
|
145
|
+
measure:
|
|
146
|
+
type: object
|
|
147
|
+
additionalProperties: false
|
|
148
|
+
required: [signal, baseline, target]
|
|
149
|
+
properties:
|
|
150
|
+
signal: { $ref: "#/$defs/longText" }
|
|
151
|
+
target: { $ref: "#/$defs/longText" }
|
|
152
|
+
baseline:
|
|
153
|
+
oneOf:
|
|
154
|
+
- type: object
|
|
155
|
+
additionalProperties: false
|
|
156
|
+
required: [status, value]
|
|
157
|
+
properties:
|
|
158
|
+
status: { const: known }
|
|
159
|
+
value: { $ref: "#/$defs/text" }
|
|
160
|
+
- type: object
|
|
161
|
+
additionalProperties: false
|
|
162
|
+
required: [status, reason]
|
|
163
|
+
properties:
|
|
164
|
+
status: { enum: [unknown, not-applicable] }
|
|
165
|
+
reason: { $ref: "#/$defs/longText" }
|
|
166
|
+
evidenceRefs: { $ref: "#/$defs/nonEmptyRefs" }
|
|
167
|
+
dataSource:
|
|
168
|
+
type: object
|
|
169
|
+
additionalProperties: false
|
|
170
|
+
required: [id, name, mode, latency, classification, sourceEvidenceRef, freshness, limitations, fallback]
|
|
171
|
+
properties:
|
|
172
|
+
id: { $ref: "#/$defs/id" }
|
|
173
|
+
name: { $ref: "#/$defs/text" }
|
|
174
|
+
mode: { enum: [live, demo, hybrid, imported, cached, user-input, local-static] }
|
|
175
|
+
latency: { enum: [immediate, async, streaming, unknown] }
|
|
176
|
+
classification: { enum: [public, internal, confidential, restricted] }
|
|
177
|
+
sourceEvidenceRef: { $ref: "#/$defs/id" }
|
|
178
|
+
freshness: { $ref: "#/$defs/longText" }
|
|
179
|
+
limitations: { $ref: "#/$defs/textList" }
|
|
180
|
+
fallback:
|
|
181
|
+
type: object
|
|
182
|
+
additionalProperties: false
|
|
183
|
+
required: [kind, disclosure, preservesOrigin]
|
|
184
|
+
properties:
|
|
185
|
+
kind: { enum: [none, demo, cache, import, manual] }
|
|
186
|
+
disclosure: { $ref: "#/$defs/longText" }
|
|
187
|
+
preservesOrigin: { type: boolean }
|
|
188
|
+
task:
|
|
189
|
+
type: object
|
|
190
|
+
additionalProperties: false
|
|
191
|
+
required: [id, title, audienceRefs, outcomeRefs, dataRefs, trigger, goal, frequency, criticality, consequential, inputs, successSignal, failureImpact, recovery, evidenceRefs]
|
|
192
|
+
properties:
|
|
193
|
+
id: { $ref: "#/$defs/id" }
|
|
194
|
+
title: { $ref: "#/$defs/text" }
|
|
195
|
+
audienceRefs: { $ref: "#/$defs/nonEmptyRefs" }
|
|
196
|
+
outcomeRefs: { $ref: "#/$defs/nonEmptyRefs" }
|
|
197
|
+
dataRefs: { $ref: "#/$defs/refs" }
|
|
198
|
+
trigger: { $ref: "#/$defs/longText" }
|
|
199
|
+
goal: { $ref: "#/$defs/longText" }
|
|
200
|
+
frequency: { enum: [continuous, daily, weekly, monthly, occasional, one-time] }
|
|
201
|
+
criticality: { enum: [critical, high, medium, low] }
|
|
202
|
+
consequential: { type: boolean }
|
|
203
|
+
inputs: { $ref: "#/$defs/textList" }
|
|
204
|
+
successSignal: { $ref: "#/$defs/longText" }
|
|
205
|
+
failureImpact: { $ref: "#/$defs/longText" }
|
|
206
|
+
recovery: { $ref: "#/$defs/longText" }
|
|
207
|
+
evidenceRefs: { $ref: "#/$defs/nonEmptyRefs" }
|
|
208
|
+
state:
|
|
209
|
+
type: object
|
|
210
|
+
additionalProperties: false
|
|
211
|
+
required: [state, taskRefs, behavior, recovery, disclosure]
|
|
212
|
+
properties:
|
|
213
|
+
state: { enum: [loading, empty, success, error, partial, stale, disconnected, unauthorized, blocked, offline] }
|
|
214
|
+
taskRefs: { $ref: "#/$defs/nonEmptyRefs" }
|
|
215
|
+
behavior: { $ref: "#/$defs/longText" }
|
|
216
|
+
recovery: { $ref: "#/$defs/longText" }
|
|
217
|
+
disclosure: { $ref: "#/$defs/longText" }
|
|
218
|
+
platform:
|
|
219
|
+
type: object
|
|
220
|
+
additionalProperties: false
|
|
221
|
+
required: [id, kind, priority, viewports, inputModes, constraints]
|
|
222
|
+
properties:
|
|
223
|
+
id: { $ref: "#/$defs/id" }
|
|
224
|
+
kind: { enum: [responsive-web, desktop-web, mobile-web, native-mobile, desktop-app] }
|
|
225
|
+
priority: { enum: [primary, secondary] }
|
|
226
|
+
viewports: { type: array, items: { type: integer, minimum: 240, maximum: 10000 } }
|
|
227
|
+
inputModes: { type: array, minItems: 1, items: { enum: [keyboard, pointer, touch, assistive-technology] } }
|
|
228
|
+
constraints: { $ref: "#/$defs/textList" }
|
|
229
|
+
requirement:
|
|
230
|
+
type: object
|
|
231
|
+
additionalProperties: false
|
|
232
|
+
required: [id, category, priority, statement, rationale, taskRefs, evidenceRefs]
|
|
233
|
+
properties:
|
|
234
|
+
id: { $ref: "#/$defs/id" }
|
|
235
|
+
category: { enum: [functional, usability, accessibility, security, privacy, performance, reliability, maintainability, content, brand] }
|
|
236
|
+
priority: { enum: [must, should, could, wont] }
|
|
237
|
+
statement: { $ref: "#/$defs/longText" }
|
|
238
|
+
rationale: { $ref: "#/$defs/longText" }
|
|
239
|
+
taskRefs: { $ref: "#/$defs/refs" }
|
|
240
|
+
evidenceRefs: { $ref: "#/$defs/nonEmptyRefs" }
|
|
241
|
+
assumption:
|
|
242
|
+
type: object
|
|
243
|
+
additionalProperties: false
|
|
244
|
+
required: [id, statement, risk, status, evidenceRefs, validationMethod]
|
|
245
|
+
properties:
|
|
246
|
+
id: { $ref: "#/$defs/id" }
|
|
247
|
+
statement: { $ref: "#/$defs/longText" }
|
|
248
|
+
risk: { enum: [high, medium, low] }
|
|
249
|
+
status: { enum: [unresolved, validated, rejected] }
|
|
250
|
+
evidenceRefs: { $ref: "#/$defs/refs" }
|
|
251
|
+
validationMethod: { $ref: "#/$defs/longText" }
|
|
252
|
+
acceptanceCriterion:
|
|
253
|
+
type: object
|
|
254
|
+
additionalProperties: false
|
|
255
|
+
required: [id, statement, requirementRefs, taskRefs, method, expectedEvidence, blocking]
|
|
256
|
+
properties:
|
|
257
|
+
id: { $ref: "#/$defs/id" }
|
|
258
|
+
statement: { $ref: "#/$defs/longText" }
|
|
259
|
+
requirementRefs: { $ref: "#/$defs/nonEmptyRefs" }
|
|
260
|
+
taskRefs: { $ref: "#/$defs/nonEmptyRefs" }
|
|
261
|
+
method: { enum: [static-analysis, unit-test, integration-test, browser-test, manual-human, human-expert, representative-user] }
|
|
262
|
+
expectedEvidence: { $ref: "#/$defs/longText" }
|
|
263
|
+
blocking: { type: boolean }
|
|
264
|
+
downstreamContract:
|
|
265
|
+
type: object
|
|
266
|
+
additionalProperties: false
|
|
267
|
+
required: [kind, status]
|
|
268
|
+
properties:
|
|
269
|
+
kind: { enum: [product-task, interface-trust, information-design, design-deliverable] }
|
|
270
|
+
status: { enum: [planned, exists, not-applicable] }
|
|
271
|
+
path: { $ref: "#/$defs/longText" }
|
|
272
|
+
reason: { $ref: "#/$defs/longText" }
|
|
273
|
+
allOf:
|
|
274
|
+
- if:
|
|
275
|
+
properties: { status: { const: exists } }
|
|
276
|
+
then: { required: [path] }
|
|
277
|
+
- if:
|
|
278
|
+
properties: { status: { const: not-applicable } }
|
|
279
|
+
then: { required: [reason] }
|