@tyroneross/build-loop 0.30.3
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/.agents/plugins/marketplace.json +10 -0
- package/.claude-plugin/marketplace.json +38 -0
- package/.claude-plugin/plugin.json +30 -0
- package/.codex-plugin/plugin.json +41 -0
- package/.cursor/rules/build-loop-surface.mdc +22 -0
- package/AGENTS.md +498 -0
- package/LICENSE +202 -0
- package/README.md +403 -0
- package/agents/alignment-checker.md +124 -0
- package/agents/api-assessor.md +136 -0
- package/agents/architecture-scout.md +185 -0
- package/agents/assessment-orchestrator.md +163 -0
- package/agents/build-orchestrator.md +198 -0
- package/agents/database-assessor.md +133 -0
- package/agents/design-contract-specialist.md +239 -0
- package/agents/fact-checker.md +69 -0
- package/agents/fix-critique.md +161 -0
- package/agents/frontend-assessor.md +136 -0
- package/agents/implementer.md +185 -0
- package/agents/independent-auditor.md +143 -0
- package/agents/mock-scanner.md +78 -0
- package/agents/optimize-runner.md +112 -0
- package/agents/overfitting-reviewer.md +96 -0
- package/agents/performance-assessor.md +159 -0
- package/agents/plan-critic.md +85 -0
- package/agents/promotion-reviewer.md +121 -0
- package/agents/recurring-pattern-detector.md +248 -0
- package/agents/retrospective-synthesizer.md +109 -0
- package/agents/root-cause-investigator.md +285 -0
- package/agents/scope-auditor.md +121 -0
- package/agents/security-reviewer.md +151 -0
- package/agents/self-improvement-architect.md +125 -0
- package/agents/synthesis-critic.md +99 -0
- package/agents/transcript-pattern-miner.md +165 -0
- package/agents/ui-validator.md +193 -0
- package/codex-skills/build-loop/SKILL.md +20 -0
- package/codex-skills/debug-loop/SKILL.md +18 -0
- package/codex-skills/handoff/SKILL.md +22 -0
- package/codex-skills/knowledge/SKILL.md +21 -0
- package/codex-skills/optimize/SKILL.md +18 -0
- package/codex-skills/research/SKILL.md +18 -0
- package/commands/agent-rally-point.md +301 -0
- package/commands/assess.md +41 -0
- package/commands/debug.md +20 -0
- package/commands/debugger-detail.md +34 -0
- package/commands/debugger-scan.md +15 -0
- package/commands/debugger-status.md +20 -0
- package/commands/debugger.md +32 -0
- package/commands/handoff.md +113 -0
- package/commands/knowledge-review.md +16 -0
- package/commands/optimize.md +31 -0
- package/commands/plan-verify.md +39 -0
- package/commands/promote-experiment.md +129 -0
- package/commands/research.md +22 -0
- package/commands/run.md +12 -0
- package/commands/self-review.md +51 -0
- package/commands/start-prd.md +57 -0
- package/commands/test.md +34 -0
- package/dist/src/assessment-orchestrator.d.ts +78 -0
- package/dist/src/assessment-orchestrator.d.ts.map +1 -0
- package/dist/src/assessment-orchestrator.js +304 -0
- package/dist/src/assessment-orchestrator.js.map +1 -0
- package/dist/src/audit-miner.d.ts +21 -0
- package/dist/src/audit-miner.d.ts.map +1 -0
- package/dist/src/audit-miner.js +421 -0
- package/dist/src/audit-miner.js.map +1 -0
- package/dist/src/batch-operations.d.ts +30 -0
- package/dist/src/batch-operations.d.ts.map +1 -0
- package/dist/src/batch-operations.js +339 -0
- package/dist/src/batch-operations.js.map +1 -0
- package/dist/src/config.d.ts +83 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +176 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/context-engine.d.ts +45 -0
- package/dist/src/context-engine.d.ts.map +1 -0
- package/dist/src/context-engine.js +135 -0
- package/dist/src/context-engine.js.map +1 -0
- package/dist/src/debug-wrapper.d.ts +58 -0
- package/dist/src/debug-wrapper.d.ts.map +1 -0
- package/dist/src/debug-wrapper.js +285 -0
- package/dist/src/debug-wrapper.js.map +1 -0
- package/dist/src/index.d.ts +31 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +149 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/interactive-verifier.d.ts +26 -0
- package/dist/src/interactive-verifier.d.ts.map +1 -0
- package/dist/src/interactive-verifier.js +435 -0
- package/dist/src/interactive-verifier.js.map +1 -0
- package/dist/src/lessons.d.ts +59 -0
- package/dist/src/lessons.d.ts.map +1 -0
- package/dist/src/lessons.js +172 -0
- package/dist/src/lessons.js.map +1 -0
- package/dist/src/log-reader.d.ts +39 -0
- package/dist/src/log-reader.d.ts.map +1 -0
- package/dist/src/log-reader.js +291 -0
- package/dist/src/log-reader.js.map +1 -0
- package/dist/src/logger.d.ts +59 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +328 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/parallel-retrieval.d.ts +52 -0
- package/dist/src/parallel-retrieval.d.ts.map +1 -0
- package/dist/src/parallel-retrieval.js +309 -0
- package/dist/src/parallel-retrieval.js.map +1 -0
- package/dist/src/pattern-extractor.d.ts +30 -0
- package/dist/src/pattern-extractor.d.ts.map +1 -0
- package/dist/src/pattern-extractor.js +386 -0
- package/dist/src/pattern-extractor.js.map +1 -0
- package/dist/src/result-aggregator.d.ts +44 -0
- package/dist/src/result-aggregator.d.ts.map +1 -0
- package/dist/src/result-aggregator.js +315 -0
- package/dist/src/result-aggregator.js.map +1 -0
- package/dist/src/retrieval.d.ts +139 -0
- package/dist/src/retrieval.d.ts.map +1 -0
- package/dist/src/retrieval.js +724 -0
- package/dist/src/retrieval.js.map +1 -0
- package/dist/src/setup/auto-setup.d.ts +15 -0
- package/dist/src/setup/auto-setup.d.ts.map +1 -0
- package/dist/src/setup/auto-setup.js +157 -0
- package/dist/src/setup/auto-setup.js.map +1 -0
- package/dist/src/setup/configure-hooks.d.ts +8 -0
- package/dist/src/setup/configure-hooks.d.ts.map +1 -0
- package/dist/src/setup/configure-hooks.js +16 -0
- package/dist/src/setup/configure-hooks.js.map +1 -0
- package/dist/src/setup/create-slash-commands.d.ts +8 -0
- package/dist/src/setup/create-slash-commands.d.ts.map +1 -0
- package/dist/src/setup/create-slash-commands.js +101 -0
- package/dist/src/setup/create-slash-commands.js.map +1 -0
- package/dist/src/setup/index.d.ts +8 -0
- package/dist/src/setup/index.d.ts.map +1 -0
- package/dist/src/setup/index.js +17 -0
- package/dist/src/setup/index.js.map +1 -0
- package/dist/src/setup/inject-claude-md.d.ts +10 -0
- package/dist/src/setup/inject-claude-md.d.ts.map +1 -0
- package/dist/src/setup/inject-claude-md.js +150 -0
- package/dist/src/setup/inject-claude-md.js.map +1 -0
- package/dist/src/setup/uninstall.d.ts +22 -0
- package/dist/src/setup/uninstall.d.ts.map +1 -0
- package/dist/src/setup/uninstall.js +235 -0
- package/dist/src/setup/uninstall.js.map +1 -0
- package/dist/src/storage.d.ts +192 -0
- package/dist/src/storage.d.ts.map +1 -0
- package/dist/src/storage.js +1037 -0
- package/dist/src/storage.js.map +1 -0
- package/dist/src/string-similarity.d.ts +8 -0
- package/dist/src/string-similarity.d.ts.map +1 -0
- package/dist/src/string-similarity.js +57 -0
- package/dist/src/string-similarity.js.map +1 -0
- package/dist/src/traces/adapters/browser.d.ts +69 -0
- package/dist/src/traces/adapters/browser.d.ts.map +1 -0
- package/dist/src/traces/adapters/browser.js +280 -0
- package/dist/src/traces/adapters/browser.js.map +1 -0
- package/dist/src/traces/adapters/index.d.ts +23 -0
- package/dist/src/traces/adapters/index.d.ts.map +1 -0
- package/dist/src/traces/adapters/index.js +67 -0
- package/dist/src/traces/adapters/index.js.map +1 -0
- package/dist/src/traces/adapters/langchain.d.ts +42 -0
- package/dist/src/traces/adapters/langchain.d.ts.map +1 -0
- package/dist/src/traces/adapters/langchain.js +151 -0
- package/dist/src/traces/adapters/langchain.js.map +1 -0
- package/dist/src/traces/adapters/opentelemetry.d.ts +46 -0
- package/dist/src/traces/adapters/opentelemetry.d.ts.map +1 -0
- package/dist/src/traces/adapters/opentelemetry.js +164 -0
- package/dist/src/traces/adapters/opentelemetry.js.map +1 -0
- package/dist/src/traces/adapters/sentry.d.ts +58 -0
- package/dist/src/traces/adapters/sentry.d.ts.map +1 -0
- package/dist/src/traces/adapters/sentry.js +212 -0
- package/dist/src/traces/adapters/sentry.js.map +1 -0
- package/dist/src/traces/index.d.ts +10 -0
- package/dist/src/traces/index.d.ts.map +1 -0
- package/dist/src/traces/index.js +45 -0
- package/dist/src/traces/index.js.map +1 -0
- package/dist/src/traces/storage.d.ts +78 -0
- package/dist/src/traces/storage.d.ts.map +1 -0
- package/dist/src/traces/storage.js +399 -0
- package/dist/src/traces/storage.js.map +1 -0
- package/dist/src/traces/summarizer.d.ts +83 -0
- package/dist/src/traces/summarizer.d.ts.map +1 -0
- package/dist/src/traces/summarizer.js +247 -0
- package/dist/src/traces/summarizer.js.map +1 -0
- package/dist/src/traces/types.d.ts +365 -0
- package/dist/src/traces/types.d.ts.map +1 -0
- package/dist/src/traces/types.js +14 -0
- package/dist/src/traces/types.js.map +1 -0
- package/dist/src/types.d.ts +495 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +27 -0
- package/dist/src/types.js.map +1 -0
- package/docs/agent-surface-policy.md +45 -0
- package/docs/memory-setup.md +226 -0
- package/hooks/_arch_scan_bg.py +88 -0
- package/hooks/_plugin_drift_check_bg.py +85 -0
- package/hooks/_session_start_lib.sh +42 -0
- package/hooks/git/pre-push +141 -0
- package/hooks/hooks.json +126 -0
- package/hooks/post-commit +30 -0
- package/hooks/pre-commit +29 -0
- package/hooks/pre-edit-apppulse.sh +6 -0
- package/hooks/pre-edit-architecture.sh +106 -0
- package/hooks/pre-edit-rally-point.sh +92 -0
- package/hooks/session-start-apppulse.sh +6 -0
- package/hooks/session-start-architecture.sh +10 -0
- package/hooks/session-start-git-hooks.sh +12 -0
- package/hooks/session-start-plugin-drift.sh +27 -0
- package/hooks/session-start-rally-point.sh +44 -0
- package/hooks/session-start-retrieval.sh +24 -0
- package/hooks/session-start-worktree-gc.sh +105 -0
- package/hooks/test_apppulse_hooks.sh +6 -0
- package/hooks/test_rally_point_hooks.sh +388 -0
- package/hooks/test_sec008_hooks.sh +66 -0
- package/package.json +111 -0
- package/scripts/README.md +301 -0
- package/scripts/_db_url.py +61 -0
- package/scripts/_paths.py +445 -0
- package/scripts/blm.py +162 -0
- package/scripts/blm_api.py +263 -0
- package/scripts/check_cache_sync.py +490 -0
- package/scripts/embed_backend.py +475 -0
- package/scripts/install_memory.py +556 -0
- package/scripts/lessons_index/__init__.py +77 -0
- package/scripts/lessons_index/__main__.py +135 -0
- package/scripts/lessons_index/ingest.py +288 -0
- package/scripts/lessons_index/query.py +285 -0
- package/scripts/lessons_index/schema.py +114 -0
- package/scripts/memory_context/__init__.py +610 -0
- package/scripts/memory_graph/__init__.py +393 -0
- package/scripts/project_resolver.py +172 -0
- package/scripts/prune_codex_plugin_cache.py +23 -0
- package/scripts/prune_plugin_cache.py +359 -0
- package/scripts/semantic_index/__init__.py +482 -0
- package/scripts/semantic_index/_bench_hybrid.py +175 -0
- package/scripts/semantic_index/backfill.py +263 -0
- package/scripts/semantic_index/hybrid.py +174 -0
- package/scripts/semantic_index/test_backfill.py +292 -0
- package/scripts/semantic_index/test_hybrid.py +541 -0
- package/scripts/sync_navgator_lessons.py +666 -0
- package/scripts/sync_plugin_cache.py +388 -0
- package/skills/agent-rally-point/SKILL.md +165 -0
- package/skills/agent-rally-watcher/SKILL.md +83 -0
- package/skills/api-registry-bridge/SKILL.md +59 -0
- package/skills/architecture/dead/SKILL.md +56 -0
- package/skills/architecture/impact/SKILL.md +88 -0
- package/skills/architecture/review/SKILL.md +227 -0
- package/skills/architecture/rules/SKILL.md +72 -0
- package/skills/architecture/scan/SKILL.md +79 -0
- package/skills/architecture/trace/SKILL.md +65 -0
- package/skills/attribution-standard/SKILL.md +122 -0
- package/skills/authentication/SKILL.md +81 -0
- package/skills/authentication/references/better-auth-magic-link.md +135 -0
- package/skills/authentication/references/better-auth-setup.md +224 -0
- package/skills/authentication/references/google-calendar-sync.md +278 -0
- package/skills/authentication/references/google-cloud-console.md +159 -0
- package/skills/authentication/references/google-geocoding-directions.md +126 -0
- package/skills/authentication/references/google-lessons-example-web-app.md +177 -0
- package/skills/authentication/references/google-maps.md +162 -0
- package/skills/authentication/references/google-oauth-setup.md +343 -0
- package/skills/authentication/references/google-places.md +173 -0
- package/skills/authentication/references/lessons-example-web-app-better-auth.md +126 -0
- package/skills/authentication/references/resend-email.md +227 -0
- package/skills/authentication/references/resend-otp-magic-link.md +153 -0
- package/skills/authentication/references/supabase-auth.md +172 -0
- package/skills/auto-decision-capture/SKILL.md +419 -0
- package/skills/build-loop/SKILL.md +516 -0
- package/skills/build-loop/detect-plugins.mjs +82 -0
- package/skills/build-loop/eval-guide.md +65 -0
- package/skills/build-loop/fallbacks.md +549 -0
- package/skills/build-loop/phases/fact-check.md +42 -0
- package/skills/build-loop/phases/ui-validation.md +267 -0
- package/skills/build-loop/references/apple-native-planning.md +439 -0
- package/skills/build-loop/references/capability-routing.md +181 -0
- package/skills/build-loop/references/codex-subagents.md +98 -0
- package/skills/build-loop/references/coordination.md +161 -0
- package/skills/build-loop/references/correction-aware-capture.md +177 -0
- package/skills/build-loop/references/independent-auditor.md +72 -0
- package/skills/build-loop/references/intent-capability-pack.md +170 -0
- package/skills/build-loop/references/intent-exploration-prompts.md +96 -0
- package/skills/build-loop/references/leadership.md +72 -0
- package/skills/build-loop/references/memory.md +284 -0
- package/skills/build-loop/references/modular-systems-pack.md +96 -0
- package/skills/build-loop/references/output-style.md +129 -0
- package/skills/build-loop/references/pay-it-forward-arch.md +98 -0
- package/skills/build-loop/references/phase-1-assess.md +218 -0
- package/skills/build-loop/references/phase-2-plan.md +77 -0
- package/skills/build-loop/references/phase-3-execute.md +47 -0
- package/skills/build-loop/references/phase-4-review.md +310 -0
- package/skills/build-loop/references/phase-5-iterate.md +71 -0
- package/skills/build-loop/references/phase-6-learn.md +56 -0
- package/skills/build-loop/references/recent-design-structures.md +274 -0
- package/skills/build-loop/references/refactor-history/ASSESSMENT.md +85 -0
- package/skills/build-loop/references/refactor-history/STANDALONE_TEST_RUN.md +149 -0
- package/skills/build-loop/references/refactor-history/scenarios/01-simple-bugfix.md +32 -0
- package/skills/build-loop/references/refactor-history/scenarios/02-ui-build-with-iteration.md +48 -0
- package/skills/build-loop/references/refactor-history/scenarios/03-multi-failure-escalation.md +60 -0
- package/skills/build-loop/references/refactor-history/scenarios/04-ui-build-ibr-absent.md +51 -0
- package/skills/build-loop/references/refactor-history/scenarios/05-refactor-navgator-absent.md +71 -0
- package/skills/build-loop/references/refactor-history/scenarios/06-recurring-bug-debugger-absent.md +52 -0
- package/skills/build-loop/references/refactor-history/trace-comparison.md +202 -0
- package/skills/build-loop/references/self-recursive-dev.md +77 -0
- package/skills/build-loop/references/self-review.md +232 -0
- package/skills/build-loop/references/ui-io-contract.md +116 -0
- package/skills/build-loop/scanners/audit-design-rules.mjs +476 -0
- package/skills/build-loop/scanners/require-visual-evidence.mjs +239 -0
- package/skills/build-loop/templates/backlog-item.md +35 -0
- package/skills/build-loop/templates/codex-worker-prompt.md +89 -0
- package/skills/build-loop/templates/ui-subagent-prompt.md +179 -0
- package/skills/build-loop/templates/ux-fix-plan.md +40 -0
- package/skills/building-with-deepagents/SKILL.md +195 -0
- package/skills/building-with-deepagents/references/anti-patterns.md +141 -0
- package/skills/building-with-deepagents/references/api-quick-reference.md +184 -0
- package/skills/capabilities/SKILL.md +91 -0
- package/skills/debug-loop/SKILL.md +278 -0
- package/skills/debug-loop/references/convergence-rules.md +145 -0
- package/skills/debug-loop/references/swiftui-macos-clunky-ui-debugger.html +823 -0
- package/skills/debugging/assess/SKILL.md +111 -0
- package/skills/debugging/debug-loop/SKILL.md +231 -0
- package/skills/debugging/memory/SKILL.md +147 -0
- package/skills/debugging/store/SKILL.md +153 -0
- package/skills/debugging-memory/SKILL.md +440 -0
- package/skills/debugging-memory/examples/incident-example.json +67 -0
- package/skills/debugging-memory/references/incident-documentation.md +280 -0
- package/skills/debugging-memory/references/ios-notification-alarm-playbook.md +300 -0
- package/skills/debugging-memory/references/pattern-extraction.md +163 -0
- package/skills/debugging-memory/references/subagent-integration.md +312 -0
- package/skills/defenseclaw-bridge/SKILL.md +156 -0
- package/skills/defenseclaw-bridge/references/dc-config-mapping.md +162 -0
- package/skills/defenseclaw-bridge/references/output-format.md +108 -0
- package/skills/handoff/SKILL.md +94 -0
- package/skills/ibr-bridge/SKILL.md +68 -0
- package/skills/knowledge/SKILL.md +127 -0
- package/skills/knowledge/references/recall-integration.md +83 -0
- package/skills/knowledge/templates/madr-minimal.md +56 -0
- package/skills/knowledge-review/SKILL.md +112 -0
- package/skills/logging-tracer/SKILL.md +202 -0
- package/skills/logging-tracer/references/log-analysis.md +128 -0
- package/skills/logging-tracer/references/stack-templates.md +274 -0
- package/skills/logging-tracer-bridge/SKILL.md +70 -0
- package/skills/mcp-builder/SKILL.md +278 -0
- package/skills/mcp-builder/references/mcp-security.md +106 -0
- package/skills/model-tiering/SKILL.md +216 -0
- package/skills/native-ax-driver/SKILL.md +220 -0
- package/skills/native-ax-driver/scripts/layout_fill.py +222 -0
- package/skills/native-ax-driver/scripts/native_driver.py +495 -0
- package/skills/native-ax-driver/swift/bl-ax-driver/Package.swift +20 -0
- package/skills/native-ax-driver/swift/bl-ax-driver/Sources/main.swift +542 -0
- package/skills/optimize/SKILL.md +202 -0
- package/skills/optimize/profiles.md +61 -0
- package/skills/plan-verify/SKILL.md +115 -0
- package/skills/plan-verify/test-fixtures/example-app-v20-findings.json +27 -0
- package/skills/plan-verify/test-fixtures/example-app-v20.md +42 -0
- package/skills/plan-verify/test-fixtures/example-app-v22-findings.json +15 -0
- package/skills/plan-verify/test-fixtures/example-app-v22.md +1608 -0
- package/skills/plan-verify/test-fixtures/unrelated-good-plan-findings.json +15 -0
- package/skills/plan-verify/test-fixtures/unrelated-good-plan.md +55 -0
- package/skills/plugin-builder/SKILL.md +329 -0
- package/skills/plugin-builder/references/authoritative-sources.md +104 -0
- package/skills/plugin-builder/references/build-loop-phase-guidance.md +94 -0
- package/skills/plugin-builder/references/components-guide.md +221 -0
- package/skills/plugin-builder/references/distribution.md +317 -0
- package/skills/plugin-builder/references/dual-host-claude-codex.md +220 -0
- package/skills/plugin-builder/references/hooks-reference.md +210 -0
- package/skills/plugin-builder/references/manifest-schema.md +111 -0
- package/skills/plugin-builder/references/plugin-hygiene-lessons.md +307 -0
- package/skills/plugin-tests/SKILL.md +94 -0
- package/skills/prd-bridge/SKILL.md +135 -0
- package/skills/research/SKILL.md +80 -0
- package/skills/security-methodology/SKILL.md +105 -0
- package/skills/security-methodology/references/cross-source-matrix.md +77 -0
- package/skills/security-methodology/references/mitre-atlas-starter.md +83 -0
- package/skills/security-methodology/references/nist-600-1-mapping.md +119 -0
- package/skills/security-methodology/references/owasp-agentic-top-10.md +157 -0
- package/skills/security-methodology/references/owasp-llm-top-10.md +144 -0
- package/skills/security-methodology/references/owasp-web-top-10.md +65 -0
- package/skills/self-improve/SKILL.md +298 -0
- package/skills/spec-writing/SKILL.md +548 -0
- package/skills/spec-writing/scripts/check_checklist.py +478 -0
- package/skills/sync-skills/SKILL.md +132 -0
- package/skills/telemetry/SKILL.md +66 -0
- package/skills/ui-design/SKILL.md +75 -0
- package/skills/ui-design/references/design-patterns-multi.md +165 -0
- package/skills/ui-design/references/design-preferences-from-owned-apps.md +150 -0
- package/skills/ui-design/references/evidence-capture-policy.md +55 -0
- package/skills/ui-design/references/ui-guidance-sources.md +330 -0
- package/skills/ui-design/references/universal-design-principles.alt.md +182 -0
- package/skills/ui-design/references/universal-design-principles.md +419 -0
- package/templates/memory/MEMORY.md.template +55 -0
- package/templates/memory/constitution.md.template +64 -0
- package/templates/memory/manifest.json +47 -0
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
2
|
+
|
|
3
|
+
# UI Guidance Source Map
|
|
4
|
+
|
|
5
|
+
Canonical build-loop entrypoint:
|
|
6
|
+
|
|
7
|
+
- Skill: `build-loop:ui-design`
|
|
8
|
+
- Agent: `agents/design-contract-specialist.md`
|
|
9
|
+
- Runtime contract: `.build-loop/app-contract/ui.md`
|
|
10
|
+
- Universal principles: `skills/ui-design/references/universal-design-principles.md`
|
|
11
|
+
- Implementer prompt: `skills/build-loop/templates/ui-subagent-prompt.md`
|
|
12
|
+
- Input/output contract: `skills/build-loop/references/ui-io-contract.md`
|
|
13
|
+
- Recent structure picker: `skills/build-loop/references/recent-design-structures.md`
|
|
14
|
+
- Validator: `agents/ui-validator.md`
|
|
15
|
+
|
|
16
|
+
Use this file to choose sources. Do not paste the whole map into implementer prompts.
|
|
17
|
+
|
|
18
|
+
## Design Guidance Model
|
|
19
|
+
|
|
20
|
+
Use the guidance as a layered model:
|
|
21
|
+
|
|
22
|
+
| Layer | Role | Examples |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| Product contract | Defines the user job, inputs, outputs, operations, platform, data shape, and risk | `ui-io-contract.md`, `.build-loop/app-contract/ui.md` |
|
|
25
|
+
| Universal communication and experience design | Governs answer-first structure, one primary focus, continuity, wayfinding, process visibility, graceful degradation, MECE grouping, semantic hierarchy, evidence integrity, native primitives, accessibility, and rendered QA across UI, writing, images, decks, docs, operational workflows, reports, spreadsheets, and PDFs | `universal-design-principles.md` |
|
|
26
|
+
| Structural foundation | Governs cognitive predictability and implementation discipline | Calm Precision |
|
|
27
|
+
| Project surface | Preserves current app conventions and brand | tokens, theme files, components, screenshots, selected mockups |
|
|
28
|
+
| Structure or style mode | Selects the layout/mood that fits the current surface | Conversational Command, Bento Dashboard, Pipeline Wizard, Outcome Ledger, Pyramid Detail, Glass Workspace, Warm Craft, Data Narrative, native mobile, AI Artifact Canvas |
|
|
29
|
+
| Validation | Proves the result works and renders | `ui-validator`, scanner, browser/simulator screenshots, contract traceability |
|
|
30
|
+
|
|
31
|
+
Do not treat every source as equal. Universal communication principles are the cross-medium baseline. Calm Precision is the UI structural baseline, not a competing mode. Recent structures and style systems are selected after the product contract is known.
|
|
32
|
+
|
|
33
|
+
## Build-Loop Runtime Guidance
|
|
34
|
+
|
|
35
|
+
Load these first for active builds:
|
|
36
|
+
|
|
37
|
+
- `skills/build-loop/references/ui-io-contract.md` - required UI plan contract.
|
|
38
|
+
- `skills/ui-design/references/universal-design-principles.md` - cross-medium doctrine for app UI, writing, images, operational workflows, decks, docs, reports, spreadsheets, PDFs, and other communication or information artifacts.
|
|
39
|
+
- `skills/build-loop/references/recent-design-structures.md` - compact recent structure library; options, not mandates.
|
|
40
|
+
- `skills/build-loop/templates/ui-subagent-prompt.md` - prompt preamble for UI implementers.
|
|
41
|
+
- `skills/build-loop/phases/ui-validation.md` - validation gates and visual evidence requirements.
|
|
42
|
+
- `skills/build-loop/fallbacks.md` - degraded UI tooling path.
|
|
43
|
+
- `references/ui-spotcheck-protocol.md` - visual spot-check protocol.
|
|
44
|
+
- `docs/rfcs/2026-05-ui-validator-agent.md` - ui-validator rationale.
|
|
45
|
+
|
|
46
|
+
## Universal Design Principles
|
|
47
|
+
|
|
48
|
+
`skills/ui-design/references/universal-design-principles.md` is the detailed overview for principles that should apply across every generated or reviewed artifact, not only app UI.
|
|
49
|
+
|
|
50
|
+
Boundary:
|
|
51
|
+
|
|
52
|
+
- Universal principles define the invariant decision process: orient, focus, connect, progress, recover, resolve.
|
|
53
|
+
- Routers classify the artifact or workflow and narrow defaults. Use Calm Precision router-style sources for this layer.
|
|
54
|
+
- Domain skills provide the exact primitive: UI component, writing transition, image composition, slide pattern, document style, data chart, or operational checkpoint.
|
|
55
|
+
|
|
56
|
+
What it controls:
|
|
57
|
+
|
|
58
|
+
- Purpose before presentation: audience, job, context, decision, output, and risk.
|
|
59
|
+
- Answer-first structure: governing thought, primary state, recommendation, or conclusion visible early.
|
|
60
|
+
- One primary focus per viewport, slide, section, page, chart, table, or artifact unit.
|
|
61
|
+
- Wayfinding: current state, prior context, next step, and return path.
|
|
62
|
+
- Continuity: transitions that preserve orientation across writing, UI, images, decks, docs, and data.
|
|
63
|
+
- Process visibility: purpose, start state, target end state, route, current step, checkpoints, and safe stop for rapidly changing workflows.
|
|
64
|
+
- Graceful degradation: clear message and recovery path when the preferred route fails.
|
|
65
|
+
- MECE grouping and reader-question discipline.
|
|
66
|
+
- Hierarchy before decoration: position, grouping, type, contrast, spacing, and order before visual effects.
|
|
67
|
+
- Functional and evidence integrity: real interactions, real data, sourceable claims, and no fake production-looking proof.
|
|
68
|
+
- Native primitives: semantic UI components, PowerPoint placeholders/bullets, Word styles/numbering/tables, formulas, chart objects, headings, and alt text.
|
|
69
|
+
- Accessibility, state/recovery treatment, and rendered visual QA.
|
|
70
|
+
|
|
71
|
+
Use it before medium-specific guidance for writing, images, decks, documents, reports, spreadsheets, PDFs, and UI surfaces that present dense or decision-bearing information.
|
|
72
|
+
|
|
73
|
+
## Calm Precision
|
|
74
|
+
|
|
75
|
+
Calm Precision is the default structural doctrine for build-loop UI work.
|
|
76
|
+
|
|
77
|
+
Calm Precision router sources checked:
|
|
78
|
+
|
|
79
|
+
- `calm-precision-v1-1/0_Router.md`
|
|
80
|
+
- `calm-precision-v1-1/1_Navigation_Structure.md`
|
|
81
|
+
- `calm-precision-v1-1/5_Motion_States_Identity.md`
|
|
82
|
+
|
|
83
|
+
Reusable router pattern:
|
|
84
|
+
|
|
85
|
+
- Classify archetype first.
|
|
86
|
+
- Apply defaults before loading a domain file.
|
|
87
|
+
- Ask only at high-impact or ambiguous choice points.
|
|
88
|
+
- Count steps and validate optional additions.
|
|
89
|
+
- Flag decisions made without asking.
|
|
90
|
+
- Keep component option catalogs in domain files, not in universal guidance.
|
|
91
|
+
|
|
92
|
+
Where build-loop uses it:
|
|
93
|
+
|
|
94
|
+
- `skills/build-loop/templates/ui-subagent-prompt.md` requires `calm-precision` for all UI implementers.
|
|
95
|
+
- `skills/build-loop/phases/ui-validation.md` lists `calm-precision` beside `build-loop:ui-design` and `design-contract-specialist` for web, mobile, and native UI routing.
|
|
96
|
+
- `skills/build-loop/fallbacks.md` carries a condensed Calm Precision fallback when the external skill is unavailable.
|
|
97
|
+
- `agents/implementer.md` uses Calm Precision examples for usability queue fixes such as replacing background status pills with text-color status.
|
|
98
|
+
- `agents/synthesis-critic.md` treats Calm Precision copy tone and subjective UI claims as reviewable synthesis dimensions.
|
|
99
|
+
|
|
100
|
+
What it controls:
|
|
101
|
+
|
|
102
|
+
- Visual hierarchy and one clear L1 anchor.
|
|
103
|
+
- Grouping, borders, dividers, and content-to-chrome ratio.
|
|
104
|
+
- Action weight, touch targets, and card/button affordance.
|
|
105
|
+
- Disclosure depth, loading/empty/error states, and copy clarity.
|
|
106
|
+
- Motion restraint and reduced-motion compliance.
|
|
107
|
+
- Functional integrity: no fake buttons, no real-looking mock data, real handlers for interactive UI.
|
|
108
|
+
- Perceptual-science traceability: every Calm Precision rule should map to a named foundation such as Gestalt, Fitts' Law, Hick's Law, Cognitive Load, Signal-to-Noise Ratio, Affordance Theory, Temporal Gestalt, Dual-Coding, Pragmatic Inference, Attentional Cascade, the Cooperative Principle, Fault Tolerance, or Information Scent/Density. This is what lets design-contract output defend choices as evidence-backed rather than taste-based.
|
|
109
|
+
|
|
110
|
+
What it does not decide by itself:
|
|
111
|
+
|
|
112
|
+
- Whether the surface should use Glass Workspace, Warm Craft, Aurora Deep, Data Narrative, or another style mode.
|
|
113
|
+
- Product brand personality, token palette, or final typography roles when a project-specific design system exists.
|
|
114
|
+
- Native platform conventions that Apple/Web/etc. impose.
|
|
115
|
+
|
|
116
|
+
In practice: start with Calm Precision for structure, then select the mode that fits the product. For example, Aurora Glass can layer translucent surfaces over a Calm Precision layout; Warm Craft can change warmth and texture while preserving hierarchy and action discipline; Data Narrative adds evidence/storytelling patterns while keeping decision-first labels and source traceability.
|
|
117
|
+
|
|
118
|
+
## ui-guidance plugin (canonical home, 2026-05-27+)
|
|
119
|
+
|
|
120
|
+
The cross-project design library is now available as the `ui-guidance` plugin. Prefer qualified Skill invocations over absolute paths:
|
|
121
|
+
|
|
122
|
+
| What you need | Invocation |
|
|
123
|
+
|---|---|
|
|
124
|
+
| Cross-medium doctrine (UI + writing + decks + ops workflows) | `Skill("ui-guidance:principles")` |
|
|
125
|
+
| Owned-app design preferences (typography, color, touch targets, motion, error UX) | `Skill("ui-guidance:preferences")` |
|
|
126
|
+
| Multi-pattern token framework (mobile / tablet / web / watch resolution) | `Skill("ui-guidance:tokens")` |
|
|
127
|
+
| Source-read vs live-IBR-capture routing | `Skill("ui-guidance:evidence-policy")` |
|
|
128
|
+
| 4 design modes (Atmospheric / Glass Workspace / Warm Craft / Data Narrative) | Load `references/modes/<mode>.md` directly (catalog, not skill) |
|
|
129
|
+
| Chart / KPI / table / sparkline / timeline patterns | `Skill("ui-guidance:data-viz")` |
|
|
130
|
+
| Wayfinding, tab/stack/drawer/sheet selection, breadcrumbs | `Skill("ui-guidance:navigation")` |
|
|
131
|
+
| L1/L2/L3 ladder, luminance tiers, type scale | `Skill("ui-guidance:hierarchy")` |
|
|
132
|
+
| Form factors, breakpoints, viewport-scale tokens, watch glance | `Skill("ui-guidance:responsive")` |
|
|
133
|
+
| Action feedback, haptics, loading, confirmation, error UX | `Skill("ui-guidance:feedback")` |
|
|
134
|
+
| Motion, transitions, stagger, prefers-reduced-motion | `Skill("ui-guidance:motion")` |
|
|
135
|
+
| iOS / iPhone / iPad / SwiftUI | `Skill("ui-guidance:ios")` |
|
|
136
|
+
| macOS / Mac native / menu bar / NSToolbar | `Skill("ui-guidance:macos")` |
|
|
137
|
+
| Web / Next.js / React / ARIA / WCAG 2.1 AA | `Skill("ui-guidance:web")` |
|
|
138
|
+
|
|
139
|
+
**ui-guidance v0.2.0** is a flat-but-grouped IA: 10 cross-platform topic skills + 3 platform skills + design-mode catalog. The bulky reference files (`ios/references/full.md`, `web/references/full.md`, `data-viz/references/full.md`) load on demand via the skill body — do not paste them into implementer prompts.
|
|
140
|
+
|
|
141
|
+
**Bundled in the plugin under `references/`** (organized for cross-reference, not for direct path-based access from outside the plugin):
|
|
142
|
+
|
|
143
|
+
- `references/design-evidence/` — 8 owned-app evidence files
|
|
144
|
+
- `references/screenshots/{sample-voice, sample-timer, sample-product}/` — 16 live IBR captures (2026-05-26)
|
|
145
|
+
- `references/style-modes/` — `aurora-deep.md`, `aurora-glass.md`, `warm-craft.md` catalog briefs
|
|
146
|
+
- `references/tools/mockup-gallery-reviewer.html` — mockup-rating browser tool
|
|
147
|
+
- `references/historical/universal-design-principles-original.md` — pre-migration 365-line original
|
|
148
|
+
|
|
149
|
+
Mockup-gallery session data (`.mockup-gallery/selections.json`, `mockups/` rated HTML files) still live at the repo root for the mockup-gallery plugin's own use; the canonical guidance synthesized from those mockups lives in the skills above.
|
|
150
|
+
|
|
151
|
+
### Build-loop transition shims (one release cycle)
|
|
152
|
+
|
|
153
|
+
The four reference files at `skills/ui-design/references/{universal-design-principles.alt.md, design-preferences-from-owned-apps.md, design-patterns-multi.md, evidence-capture-policy.md}` are now deprecation shims pointing at the plugin. Remove after one release cycle. The plugin is the canonical source.
|
|
154
|
+
|
|
155
|
+
Current pattern families visible here:
|
|
156
|
+
|
|
157
|
+
- **Calm Precision** - structural default for professional tools and mobile-first workflows.
|
|
158
|
+
- **Glass Workspace / Aurora Glass** - structured workspace personality; often a reversible surface layer over Calm Precision.
|
|
159
|
+
- **Aurora Deep** - primary dark developer/data workspace when dense atmosphere is useful.
|
|
160
|
+
- **Warm Craft** - reflective writing, knowledge work, and human-in-the-loop planning.
|
|
161
|
+
- **Data Narrative** - charts, research, trends, market intelligence, and decision-first evidence.
|
|
162
|
+
- **Atmospheric / immersive variants** - focus, timer, wellness, and state/mood-driven surfaces.
|
|
163
|
+
- **Decision Doctor structures** - Sunrise Hero, Electric Mint, Pipeline Wizard, Bento Dashboard, Bloom Organic, Outcome Ledger, and Pyramid Detail.
|
|
164
|
+
|
|
165
|
+
## Interface Built Right
|
|
166
|
+
|
|
167
|
+
IBR has rich design and validation material, but build-loop does not auto-route through IBR.
|
|
168
|
+
|
|
169
|
+
Additional router sources checked:
|
|
170
|
+
|
|
171
|
+
- `interface-built-right/references/web-design/0_router.md`
|
|
172
|
+
- `interface-built-right/references/ios-design/0_router.md`
|
|
173
|
+
- `interface-built-right/skills/ios-design-router/SKILL.md`
|
|
174
|
+
- `interface-built-right/.codex-plugin/skills/ui-ux-guidance/SKILL.md`
|
|
175
|
+
|
|
176
|
+
These reinforce the same split: archetype/router first, then platform/domain references, then validation contract.
|
|
177
|
+
|
|
178
|
+
High-signal sources:
|
|
179
|
+
|
|
180
|
+
- `interface-built-right/.codex-plugin/skills/design/SKILL.md`
|
|
181
|
+
- `interface-built-right/.codex-plugin/skills/ui-ux-guidance/SKILL.md`
|
|
182
|
+
- `interface-built-right/skills/design-director/SKILL.md`
|
|
183
|
+
- `interface-built-right/skills/design-guidance/SKILL.md`
|
|
184
|
+
- `interface-built-right/skills/design-implementation/SKILL.md`
|
|
185
|
+
- `interface-built-right/skills/design-reference/SKILL.md`
|
|
186
|
+
- `interface-built-right/skills/design-system/SKILL.md`
|
|
187
|
+
- `interface-built-right/skills/design-validation/SKILL.md`
|
|
188
|
+
- `interface-built-right/skills/ui-guidance-library/SKILL.md`
|
|
189
|
+
- `interface-built-right/references/web-design/`
|
|
190
|
+
- `interface-built-right/references/ios-design/`
|
|
191
|
+
- `interface-built-right/mobile-ui/`
|
|
192
|
+
- `interface-built-right/templates/patterns/`
|
|
193
|
+
- `interface-built-right/src/ui-guidance/`
|
|
194
|
+
|
|
195
|
+
Use only when the user explicitly asks for IBR or when a selected IBR artifact is passed to the specialist as evidence. Do not make IBR the default build route.
|
|
196
|
+
|
|
197
|
+
## Mockup Gallery
|
|
198
|
+
|
|
199
|
+
Use for mockup drafting, selection, or review:
|
|
200
|
+
|
|
201
|
+
- `mockup-gallery/COMMON.md`
|
|
202
|
+
- `mockup-gallery/DESIGN.md`
|
|
203
|
+
- `mockup-gallery/DESIGN-SELECTED.md`
|
|
204
|
+
- `mockup-gallery/AGENTS.md`
|
|
205
|
+
- `mockup-gallery/commands/mockup-gallery.md`
|
|
206
|
+
- `mockup-gallery/skills/mockup-review/SKILL.md`
|
|
207
|
+
- `mockup-gallery/.agents/skills/mockup-review/SKILL.md`
|
|
208
|
+
- `mockup-gallery/memories/global/design-preferences.md`
|
|
209
|
+
|
|
210
|
+
Mockup Gallery helps create and judge candidate visuals. Build-loop still records the selected direction in `.build-loop/app-contract/ui.md`.
|
|
211
|
+
|
|
212
|
+
Checked sources confirm Mockup Gallery is a lifecycle and approval system, not a universal principle source. Reusable universal lessons are scratch-first exploration, state visibility, rating semantics, approved-target guardrails, implementation tracking, and versioning instead of overwriting.
|
|
213
|
+
|
|
214
|
+
## Documents, Decks, And Information Artifacts
|
|
215
|
+
|
|
216
|
+
These sources are not UI routes, but they contain reusable information-design guidance that applies to Build Loop artifacts and UI-generated outputs.
|
|
217
|
+
|
|
218
|
+
Claude local session sources inspected:
|
|
219
|
+
|
|
220
|
+
- `deck-builder/SKILL.md` (local Claude session snapshot; path redacted)
|
|
221
|
+
- `calm-precision-pptx/SKILL.md` (local Claude session snapshot; path redacted)
|
|
222
|
+
- `design-system/SKILL.md` (local Claude session snapshot; path redacted)
|
|
223
|
+
- `accessibility-review/SKILL.md` (local Claude session snapshot; path redacted)
|
|
224
|
+
- `storyline-builder/SKILL.md` (local Claude session snapshot; path redacted)
|
|
225
|
+
- `pyramid-principle-core/SKILL.md` (local Claude session snapshot; path redacted)
|
|
226
|
+
- `pptx-design/SKILL.md` (local Claude session snapshot; path redacted)
|
|
227
|
+
- `docx/SKILL.md` (local Claude session snapshot; path redacted)
|
|
228
|
+
|
|
229
|
+
Codex runtime sources inspected:
|
|
230
|
+
|
|
231
|
+
- `openai-primary-runtime/documents/.../skills/documents/SKILL.md` (Codex runtime snapshot; path redacted)
|
|
232
|
+
- `openai-primary-runtime/presentations/.../skills/presentations/SKILL.md` (Codex runtime snapshot; path redacted)
|
|
233
|
+
- `openai-primary-runtime/presentations/.../skills/presentations/subagent-instructions.md` (Codex runtime snapshot; path redacted)
|
|
234
|
+
|
|
235
|
+
Reusable guidance captured into `universal-design-principles.md`:
|
|
236
|
+
|
|
237
|
+
- Storyline and governing thought before rendering.
|
|
238
|
+
- Pyramid/MECE logic and answer-first structure.
|
|
239
|
+
- One assertion per slide or artifact unit.
|
|
240
|
+
- Cross-medium continuity, wayfinding, and graceful degradation.
|
|
241
|
+
- Template, preset, and project-system inheritance before overrides.
|
|
242
|
+
- Native Office/document primitives instead of visual fakes.
|
|
243
|
+
- Claim, metric, source, and asset provenance.
|
|
244
|
+
- Rendered visual QA for decks and docs, not only structural extraction.
|
|
245
|
+
- Accessibility as a design baseline across UI and documents.
|
|
246
|
+
|
|
247
|
+
Note: Local Claude session paths are intentionally redacted from this public package. Use the host's current plugin/session lookup rather than copying historical absolute paths.
|
|
248
|
+
|
|
249
|
+
## Research And Vault Corpus
|
|
250
|
+
|
|
251
|
+
Use for background, trend history, or long-term preference synthesis. Summarize before passing to implementers.
|
|
252
|
+
|
|
253
|
+
High-signal local research:
|
|
254
|
+
|
|
255
|
+
- `research/topics/design/`
|
|
256
|
+
- `research/projects/<project>/design-brief-2026-04-20.md`
|
|
257
|
+
|
|
258
|
+
High-signal vault folders:
|
|
259
|
+
|
|
260
|
+
- `vault/raw/engineering/ui-design-research-corpus-2026/`
|
|
261
|
+
- `vault/raw/engineering/ui-ux-calm-precision/`
|
|
262
|
+
- `vault/raw/engineering/ui-ux-central-library/`
|
|
263
|
+
- `vault/raw/engineering/ui-ux-ibr-references/`
|
|
264
|
+
- `vault/raw/engineering/ui-ux-spec-review-input-output-coverage-2026/`
|
|
265
|
+
- `vault/raw/engineering/native-ios-watchos-ui-research-2026/`
|
|
266
|
+
- `vault/raw/engineering/calm-precision-v1-1/`
|
|
267
|
+
- `vault/raw/engineering/calm-precision-native-apple-platforms-v1-1-2026/`
|
|
268
|
+
- `vault/raw/engineering/ui-ux-private-ios-guidance/`
|
|
269
|
+
- `vault/raw/engineering/ui-ux-misc-app-design/`
|
|
270
|
+
- `vault/outputs/drafts/2026-05-10-ui-preferences-mobile-first-web-apps-aggregate.md`
|
|
271
|
+
- `vault/outputs/drafts/2026-05-10-private-product-mobile-first-ui-guidance.md`
|
|
272
|
+
|
|
273
|
+
## Build-Loop-Memory
|
|
274
|
+
|
|
275
|
+
Durable long-term design memory belongs here:
|
|
276
|
+
|
|
277
|
+
- `build-loop-memory/design/README.md`
|
|
278
|
+
- `build-loop-memory/decisions/build-loop/0094-2026-05-24-build-loop-design-structure-memory-policy.md`
|
|
279
|
+
- `build-loop-memory/projects/<project>/design/` when project-specific design memory exists.
|
|
280
|
+
- `build-loop-memory/indexes/` for discovery after the migration structure settles.
|
|
281
|
+
|
|
282
|
+
Build-loop's runtime references should be refreshed from build-loop-memory when a design structure becomes repeatedly used, explicitly selected/rejected, or materially changes the selection policy.
|
|
283
|
+
|
|
284
|
+
## Project-Local Hidden Sources
|
|
285
|
+
|
|
286
|
+
Check the target project before cross-repo sources:
|
|
287
|
+
|
|
288
|
+
- `<project>/.build-loop/app-contract/ui.md`
|
|
289
|
+
- `<project>/.build-loop/research/*ui*`
|
|
290
|
+
- `<project>/.build-loop/research/*design*`
|
|
291
|
+
- `<project>/.build-loop/coordination/*ui*`
|
|
292
|
+
- `<project>/.build-loop/coordination/*design*`
|
|
293
|
+
- `<project>/.research/` when present.
|
|
294
|
+
- `<project>/docs/**` for design-system, UX, UI, accessibility, mockup, or visual guidance.
|
|
295
|
+
- `<project>/.mockup-gallery/selected.json`, `ratings.json`, `implemented.json`, or `selections.json`.
|
|
296
|
+
|
|
297
|
+
These override generic guidance when they represent the current project contract.
|
|
298
|
+
|
|
299
|
+
## Generated Or Non-Canonical Sources
|
|
300
|
+
|
|
301
|
+
Do not treat these as canonical design guidance unless a plan explicitly names a generated artifact as evidence:
|
|
302
|
+
|
|
303
|
+
- `.ibr/`
|
|
304
|
+
- `.navgator/`
|
|
305
|
+
- `.bookmark/`
|
|
306
|
+
- `.claude/bookmarks/`
|
|
307
|
+
- `node_modules/`
|
|
308
|
+
- `.next/`, `dist/`, `build/`
|
|
309
|
+
- Playwright reports, screenshots, logs, caches, and `tsconfig.tsbuildinfo`
|
|
310
|
+
- Swift `.build/`, DerivedData, module caches, and package artifacts
|
|
311
|
+
|
|
312
|
+
## Refresh Scan
|
|
313
|
+
|
|
314
|
+
Use targeted scans instead of broad full-disk loads:
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
rg -l --hidden \
|
|
318
|
+
--glob '!**/.git/**' --glob '!**/node_modules/**' --glob '!**/.next/**' \
|
|
319
|
+
--glob '!**/dist/**' --glob '!**/build/**' --glob '!**/.build/**' \
|
|
320
|
+
-i '(ui guidance|ui/ux|ux guidance|design guidance|design system|calm precision|interface built right|visual style|design direction|mockup|wireframe|interaction|accessibility|touch target|design contract|app-contract|recent design|data visualization)' \
|
|
321
|
+
"$BUILD_LOOP_REPO" \
|
|
322
|
+
"$BUILD_LOOP_MEMORY_REPO" \
|
|
323
|
+
"$INTERFACE_BUILT_RIGHT_REPO" \
|
|
324
|
+
"$UI_GUIDANCE_REPO" \
|
|
325
|
+
"$MOCKUP_GALLERY_REPO" \
|
|
326
|
+
"$RESEARCH_ROOT" \
|
|
327
|
+
"$VAULT_ROOT"
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
Record newly durable structures in build-loop-memory; record runtime choices in `.build-loop/app-contract/ui.md`.
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
<!-- SPDX-FileCopyrightText: 2025-2026 Tyrone Ross, Jr <46267523+tyroneross@users.noreply.github.com> | SPDX-License-Identifier: Apache-2.0 -->
|
|
2
|
+
|
|
3
|
+
> **DEPRECATION SHIM (one release cycle).** Canonical source migrated to the `ui-guidance` plugin → load via `Skill("ui-guidance:principles")`. This file remains in build-loop as a transition aid; future updates land in the plugin. *(Renamed from `universal-experience-principles` in ui-guidance v0.2.0.)*
|
|
4
|
+
|
|
5
|
+
# Universal Experience Principles
|
|
6
|
+
|
|
7
|
+
Cross-medium doctrine for any artifact that has to communicate, guide a person through an experience, or expose a changing process. Applies to app UI, writing, images, native screens, slides, documents, spreadsheets, reports, charts, version control, deploys, sync, automation, and design handoff. Build Loop is the runtime home; the principles are not Build Loop-specific.
|
|
8
|
+
|
|
9
|
+
Core rule: **medium changes the primitive; the principle stays stable.**
|
|
10
|
+
|
|
11
|
+
## 1. Universal Experience Model
|
|
12
|
+
|
|
13
|
+
Every artifact does the same six jobs. If a job is missing, the user has to do it themselves.
|
|
14
|
+
|
|
15
|
+
1. **Orient** — make where they are, why it matters, and the frame they are in obvious.
|
|
16
|
+
2. **Focus** — make the primary message, object, decision, or action obvious.
|
|
17
|
+
3. **Connect** — show how this piece relates to what came before and what comes next.
|
|
18
|
+
4. **Progress** — make movement through the story, task, workflow, or system visible.
|
|
19
|
+
5. **Recover** — when something fails, explain what happened, preserve context, give a next step.
|
|
20
|
+
6. **Resolve** — end with a conclusion, action, saved state, handoff, source, or intentional stop.
|
|
21
|
+
|
|
22
|
+
Continuity primitives differ by medium (transition phrase, breadcrumb, motion, visual path, branch state) but the requirement does not.
|
|
23
|
+
|
|
24
|
+
## 2. Non-Negotiables
|
|
25
|
+
|
|
26
|
+
These ten apply to every artifact produced or reviewed.
|
|
27
|
+
|
|
28
|
+
1. **Purpose before presentation.** Name user, job, context, time budget, decision, and output before choosing layout, style, or tool.
|
|
29
|
+
2. **Answer first.** The governing thought or primary state is visible early. Support comes after, not before.
|
|
30
|
+
3. **One primary focus.** Per viewport, slide, section, page, screen, table, or chart. Competing primaries are a design failure.
|
|
31
|
+
4. **Wayfinding is mandatory.** The user knows where they are, what changed, what's next, how to get back. Landmarks stay consistent across the artifact; there are no dead ends.
|
|
32
|
+
5. **Process visibility.** Anything that changes in stages exposes purpose, start state, target end state, current step, checkpoint, and recovery.
|
|
33
|
+
6. **MECE structure.** Peer ideas are the same kind of thing, non-overlapping, collectively sufficient for the parent claim.
|
|
34
|
+
7. **The system tells the truth about its own state.** Interactive controls work or are clearly labeled non-production. Data, metrics, and visual proof are real, sourced, or labeled illustrative — no mock-as-real. Loading, empty, error, stale, permission, and partial-result states are designed, not afterthoughts.
|
|
35
|
+
8. **Every action gets perceivable feedback.** Any user action — click, tap, submit, send, commit, run, save, edit, schedule — is acknowledged immediately and the resulting state change is perceivable. Disabled until pre-conditions are met; visibly enabled when actionable; in-progress during work; result confirmed at completion. No silent success, no ambiguous in-flight. Use whichever channels the medium offers: **visual** (state change, animation, toast, indicator), **haptic** (tap / impact / notification on mobile and wearable), **audible** (system sounds, voice confirmation), and **textual** (status line, echo, receipt). On mobile and wearable, haptic is often the primary confirmation when the visual change is small or briefly off-screen; pair it with a visible change wherever possible. Respect platform conventions (iOS `UIImpactFeedbackGenerator` semantic levels, watchOS haptic types, Android `HapticFeedbackConstants`, reduce-motion / silent-mode preferences).
|
|
36
|
+
- *Cited precedent:* Sample Voice App CTA pairs `Haptics.impact(.light)` with visible state + two-layer `glowShadow()` — see `sample-voice-ios.md`. Sample Product App enforces 44pt touch target at the `.btn-primary` component class — see `sample-product.md`.
|
|
37
|
+
9. **Resilient to imperfect input.** Accept multiple shapes (string / object / markdown / null; title / headline / name). Prefer partial results with warnings over total failure. Degrade along documented fallback paths. Don't reject what can reasonably be interpreted.
|
|
38
|
+
10. **Separation is earned.** Borders, boxes, dividers, and backgrounds only when they encode a real relationship break. Whitespace and alignment carry structure first; chrome only when whitespace fails.
|
|
39
|
+
- *Cited precedent:* Sample Product App uses a single accent (`--primary === --accent === --ring === #f0b65e`) and warm-monochromatic palette discipline — strictest single-accent in inventory. See `sample-product.md`. Counter-pattern: the sample decision app's three-theme toggle (`[data-theme="A"|"B"]`) preserves semantic meaning across visual presentation but dilutes brand voice — see `sample-decision-app.md`.
|
|
40
|
+
11. **Content fits its container, or the container fits the content.** Clipping, truncation without recovery, awkward wraps, and overflow are design failures. Decide which side flexes (fixed container with overflow recovery, or fluid container that grows). Critical content never shrinks below its reading threshold to fit.
|
|
41
|
+
12. **Visual hierarchy is one-glance recoverable.** A user reading at speed knows what is most important, what is next, what is supporting — from position, size, weight, contrast, and spacing alone. If color is removed, the hierarchy still holds.
|
|
42
|
+
- *Cited precedent:* Secrets Vault's `VaultTypography.title/.description/.metadata` (15/13/11pt) maps role names directly to L1/L2/L3 — see `.build-loop/design-evidence/secrets-vault-macos.md`. Anti-pattern: the sample onboarding app's inline pixel sizes across one view (12/13/14/15/16/18/20/34) — see `sample-onboarding-app.md`.
|
|
43
|
+
13. **Fit form to information.** Prose, bullets, table, chart, diagram, checklist, form, callout, or slide rhythm chosen for the reading task — not the template.
|
|
44
|
+
14. **Native primitives over visual fakes.** Use the medium's semantic structures: UI components, slide placeholders, document styles, table geometry, chart objects, alt text, headings, source notes. Don't fake them with glyphs, manual spacing, or screenshots.
|
|
45
|
+
15. **Verify the rendered artifact.** Inspect the real output surface before declaring done. Screenshots for UI; rendered pages for docs and decks; live render for charts.
|
|
46
|
+
|
|
47
|
+
**Visual-craft inheritance.** Detailed grouping, spacing, type scale, semantic color, progressive disclosure, action weight, and accessibility numbers are inherited from the underlying design system. The default is **Calm Precision**; deviations need a named exception in the artifact contract. Two universal pointers worth naming explicitly:
|
|
48
|
+
|
|
49
|
+
- **Interaction targets match input precision.** Touch needs more area than mouse; mouse more than keyboard focus; watch, remote, and voice each have their own envelope. The principle: a target the user can hit on the first try, comfortably, with the device in hand. Specific minimums live in platform skills (`accessibility-review`, platform HIGs).
|
|
50
|
+
- **Motion serves comprehension, not decoration.** Animate when it explains origin, destination, or state change. Duration short enough not to delay, long enough to be perceived. Respects reduced-motion preferences.
|
|
51
|
+
- *Cited precedent:* The sample decision app's single CSS rule overrides all animations to 0.01ms under `prefers-reduced-motion` (`app/globals.css:65-71`) — see `sample-decision-app.md`. Secrets Vault caps stagger at 400ms total (60ms × N items) — see `secrets-vault-macos.md`. The sample onboarding app documents anti-flicker behavior in code comments — see `sample-onboarding-app.md`.
|
|
52
|
+
- **Multi-form-factor via viewport-scale tokens.** When one codebase ships across iPhone, iPad, Mac, and Watch, scale a single hierarchy by a runtime env var rather than forking themes per platform.
|
|
53
|
+
- *Cited precedent:* Sample Timer App's `\.viewportScale` env (1.0× iPhone → 1.5× iPad → live-window-resize Mac → separate watch palette + AOD dim variants); see `sample-timer.md`. Formalized as Pattern 1 / Pattern 4 in the multi-pattern framework draft at `skills/ui-design/references/design-patterns-multi.md`.
|
|
54
|
+
|
|
55
|
+
## 3. Medium Adapters
|
|
56
|
+
|
|
57
|
+
Same six jobs; different primitives.
|
|
58
|
+
|
|
59
|
+
| Medium | Continuity | Recovery | Proof |
|
|
60
|
+
|---|---|---|---|
|
|
61
|
+
| **Writing** | Topic sentences, transition phrases, repeated terms, parallel structure, SCQA | State the supported conclusion, name the assumption, name the next input needed | Claims, citations, examples, line of reasoning |
|
|
62
|
+
| **Images / media** | Visual path, framing, focal hierarchy, captions, before/after pairing | Alt text, fallback caption, role label (concept / reference / production) | Source image, generation prompt, provenance |
|
|
63
|
+
| **App UI** | Breadcrumbs, nav state, preserved scroll, inline expansion, side drawer, bottom sheet, progress stepper, motion that explains origin/destination | Loading / empty / error / stale / permission / offline / retry / saved-state / partial-result / fallback states | Real data, working handlers, source labels, interaction tests, screenshots |
|
|
64
|
+
| **Decks** | Claim spine, action titles, section dividers, agenda markers, repeated footer grammar | Mark missing inputs, move unsupported numbers to appendix, preserve template rhythm | Source footnotes, proof objects, rendered slide QA |
|
|
65
|
+
| **Documents / reports** | Heading ladder, lead paragraphs, captions, cross-references, page furniture | Explain constraints, preserve edit trail, route unresolved items to appendix | Citations, styles, numbering, table geometry, rendered page QA |
|
|
66
|
+
| **Spreadsheets / data** | Frozen headers, stable dimensions/measures, filters, summary-to-detail flow | Formula warnings, missing-data treatment, source flags, named assumptions | Formulas, source lineage, audit checks, charts/tables tied to decisions |
|
|
67
|
+
| **Operational workflows** | Purpose, start state, target end state, current step, checkpoint, owner, status delta, next action | Rollback path, retry path, partial-completion note, blocked reason, safe stopping point | Git status, diff, commit SHA, test result, deploy target, migration log, sync record |
|
|
68
|
+
|
|
69
|
+
## 4. One Idea, Across Media
|
|
70
|
+
|
|
71
|
+
Two worked examples showing the same principle expressed in seven media.
|
|
72
|
+
|
|
73
|
+
**Graceful recovery** (principle: preserve context, name what happened, offer a next step):
|
|
74
|
+
|
|
75
|
+
- **Writing:** "The source does not support that claim yet. Supported conclusion: X. Assumption: Y. Next input needed: Z."
|
|
76
|
+
- **Image:** Caption reads "Concept render — labels and quantities not verified."
|
|
77
|
+
- **App UI:** Toast: "Refresh failed. Showing last saved version from 14:02. Retry · Switch source · Continue with cached."
|
|
78
|
+
- **Deck:** Footnote: "Metric not available from public source as of 2026-05; kept qualitative pending research."
|
|
79
|
+
- **Document:** Margin note: "Render check failed; layout unverified. Content edits complete."
|
|
80
|
+
- **Spreadsheet:** Cell: `=IF(ISBLANK(A2), "missing source — flagged", LOOKUP(...))` with a visible flag column.
|
|
81
|
+
- **Operational:** "Commit blocked: 2 tests failed. Files unchanged on disk. Branch position unchanged. Fix failing tests, unstage, or stop."
|
|
82
|
+
|
|
83
|
+
**Action feedback** (principle: action acknowledged immediately, state change perceivable, no silent success):
|
|
84
|
+
|
|
85
|
+
- **Writing:** Reply opens with "Received your X — answering Y below." Reader knows the question landed.
|
|
86
|
+
- **Image:** Selection ring + filename pinned on hover; no ambiguity about which asset is active.
|
|
87
|
+
- **App UI (desktop / web):** Submit button → spinner with label → success toast + the new row appearing in the list. Disabled until form valid; visibly enabled when ready.
|
|
88
|
+
- **App UI (mobile / wearable):** Tap → light haptic on press, success haptic on completion + visible state change (button collapses to checkmark, toast fades in). Long-press, swipe-to-action, and pull-to-refresh each have their own haptic signature so the gesture is confirmed even when the visual change is small or briefly off-screen.
|
|
89
|
+
- **Deck:** Click on agenda item dims others, advances to that section, breadcrumb updates in footer.
|
|
90
|
+
- **Document:** Track Changes shows the inserted text + author + timestamp; the change is the receipt.
|
|
91
|
+
- **Spreadsheet:** Recalc indicator while formulas resolve; updated cells flash briefly so the user sees what moved.
|
|
92
|
+
- **Operational:** Command echoes input, prints stepwise progress, exits with status code + summary. No silent commands.
|
|
93
|
+
|
|
94
|
+
The principle is identical across rows; the primitive is whatever the medium has natively.
|
|
95
|
+
|
|
96
|
+
## 5. Strict Versus Flexible
|
|
97
|
+
|
|
98
|
+
**Strict** (do not violate without a named exception):
|
|
99
|
+
|
|
100
|
+
- Named audience, job, and output.
|
|
101
|
+
- Governing thought or primary state is clear early.
|
|
102
|
+
- User oriented in current state and next step.
|
|
103
|
+
- Changing workflows show purpose, start, target, route, checkpoint, safe stop.
|
|
104
|
+
- Transitions preserve continuity or mark the break.
|
|
105
|
+
- Peer items are same-kind and ordered.
|
|
106
|
+
- Claims, numbers, and data visuals have provenance.
|
|
107
|
+
- Interactive controls and generated outputs are functional or labeled non-production.
|
|
108
|
+
- Degraded states explain what happened and how to recover.
|
|
109
|
+
- Accessibility and visual QA done before "complete."
|
|
110
|
+
- Medium primitives are semantic, not visual fakes.
|
|
111
|
+
|
|
112
|
+
**Flexible** (choose for the project):
|
|
113
|
+
|
|
114
|
+
- Visual style, mood, density, surface treatment.
|
|
115
|
+
- Structure shape: dashboard, narrative, wizard, ledger, canvas, memo, slide sequence.
|
|
116
|
+
- The continuity primitive: phrase, heading, animation, drawer, sheet, caption, breadcrumb, drilldown.
|
|
117
|
+
- The recovery primitive: inline message, note, fallback, retry, appendix, caveat, cached result.
|
|
118
|
+
- The process primitive: status line, checklist, branch summary, progress marker, deploy URL, commit SHA, sync record.
|
|
119
|
+
- Token palette, type family, illustration style, layout rhythm when no system exists.
|
|
120
|
+
- Polish level, justified by audience, lifespan, and risk.
|
|
121
|
+
|
|
122
|
+
## 6. Conflict Order
|
|
123
|
+
|
|
124
|
+
When sources disagree, resolve in this order:
|
|
125
|
+
|
|
126
|
+
1. Explicit user requirement for the current artifact.
|
|
127
|
+
2. Current project or artifact contract.
|
|
128
|
+
3. Router classification and archetype defaults.
|
|
129
|
+
4. Domain skill or reference for the medium.
|
|
130
|
+
5. These universal principles as the floor.
|
|
131
|
+
|
|
132
|
+
A deliberate exception names the reason in the artifact's contract, not just the visual preference. The host orchestrator (e.g., `build-loop:ui-design`) may layer additional precedence rules above this floor; defer to the host when present.
|
|
133
|
+
|
|
134
|
+
## 7. Operating Notes
|
|
135
|
+
|
|
136
|
+
For an artifact:
|
|
137
|
+
|
|
138
|
+
1. Capture audience, task, decision, purpose, current state, target end state, route, and risk.
|
|
139
|
+
2. Apply §1 and §2.
|
|
140
|
+
3. Load the medium-specific adapter (§3 row).
|
|
141
|
+
4. Render and verify (§2 rule 10).
|
|
142
|
+
5. Record deliberate exceptions in the contract with a stated reason.
|
|
143
|
+
|
|
144
|
+
For a host runtime: classify the use case first (router), apply defaults, route to domain references only when needed, ask at high-impact choice points, flag any choice made without asking.
|
|
145
|
+
|
|
146
|
+
## 8. Source Anchors
|
|
147
|
+
|
|
148
|
+
Synthesized from these skills and references. Use them by name; the host runtime resolves paths.
|
|
149
|
+
|
|
150
|
+
| Source (by name) | What it contributes |
|
|
151
|
+
|---|---|
|
|
152
|
+
| `calm-precision` skill | Cognitive predictability, grouping, hierarchy, disclosure, action weight, state/error rules, functional integrity |
|
|
153
|
+
| `calm-precision-v1-1` (Router, Navigation, Motion/States/Identity) | Router pattern; task economy and step counting; purposeful motion and state-context matching |
|
|
154
|
+
| `build-loop:ui-design` (SKILL + `ui-guidance-sources` reference) | Build Loop design route, source map, runtime priority order |
|
|
155
|
+
| `interface-built-right` web router | Web archetypes, density defaults, validation-focus risk by surface |
|
|
156
|
+
| `interface-built-right` iOS router | iOS archetype router and domain-reference split |
|
|
157
|
+
| `interface-built-right` ui-ux-guidance (Codex plugin shape) | Compact guidance order, target roles, imagegen gates, interaction states, validation contract |
|
|
158
|
+
| `UI Guidance` library (cross-platform, data-viz) | Cross-platform mode selection, content/chrome ratio, motion, status, responsive structure; decision-first data, chart-title discipline, direct labeling, source attribution |
|
|
159
|
+
| `mockup-gallery` (COMMON + mockup-review) | Mockup state model, scratch-first lifecycle, selection/implementation tracking |
|
|
160
|
+
| `deck-builder` and `calm-precision-pptx` | Storyline-first deck workflow, template inheritance, native PowerPoint primitives, action titles, one assertion per slide |
|
|
161
|
+
| `storyline-builder` and `pyramid-principle-core` | Audience brief, governing thought, SCQA, MECE key line, vertical question/answer logic, horizontal deductive/inductive logic |
|
|
162
|
+
| `pptx-design` and `docx` | Encoded deck design systems, density by purpose, visual QA; document presets, real styles/numbering/tables, render-and-inspect workflow |
|
|
163
|
+
| `design-system` and `accessibility-review` | Tokens, components, patterns, versioning, migration discipline; WCAG 2.1 AA baseline (contrast, keyboard, focus, touch targets, name/role/value) |
|
|
164
|
+
|
|
165
|
+
Absolute paths are resolved by the host runtime's skill index; this file does not hard-code per-machine locations.
|
|
166
|
+
|
|
167
|
+
## 9. Cited Precedents (Live-Capture Addendum, 2026-05-26)
|
|
168
|
+
|
|
169
|
+
Live IBR captures on the 4 primary apps surfaced texture observations that source-read could not. The principles above hold, with these qualifications:
|
|
170
|
+
|
|
171
|
+
- **Tokens extend beyond visuals.** Sample Voice App's `HapticVocabulary.swift` defines 5 semantic haptic events (`.confirm/.reward/.warn/.progress/.selection`) that layer atop UIKit feedback generators the same way `Theme.fontDisplay` layers atop `Font.system(...)`. Treat haptics as first-class tokens when the platform supports them, not as call-site decisions.
|
|
172
|
+
- **Selection signaling is platform- and density-specific, not universal.** Sample Voice App (filter pills, tab bar) uses solid-fill on selected; Sample Timer App (mode cards in modal sheet) uses 1pt border + glyph check. Both are legitimate; the choice is governed by surface density and decision weight, not a single rule. Avoid "selection = fill" claims absent context.
|
|
173
|
+
- **Empty-state vocabulary diverges intentionally.** Sample Voice App floats a muted SF Symbol + two-line copy (`history-empty`); Sample Timer App renders a 3-stop milestone ladder with connecting line (`focus-journal-insights-empty`); Sample Product App uses a text-only loading label (`loading next question…`). Pick the vocabulary that matches the user's reason-for-emptiness — first-use vs unlock-progression vs transient-load — not a single house pattern.
|
|
174
|
+
- **AI-assist as input-affordance is preferred when input is the primary action.** Sample Product App's sparkle "Enhance" CTA lives inside the textarea, not adjacent. Conserves vertical real estate and signals AI assistance via universal glyph. Pattern: when typing is the action, AI helpers live inside the field; when picking is the action, helpers can sit alongside.
|
|
175
|
+
- **Brand-identity-in-chrome is universal, treatment is product-specific.** All 4 primaries differentiate their header brand: Sample Voice App plain text title, Sample Timer App custom wordmark asset, the sample reader plain text + theme toggle, Sample Product App 2-color wordmark + diamond glyph. No primary uses a generic system-font header alone. Treatment should match product voice; avoid system-default brand chrome unless the app is intentionally voice-neutral.
|
|
176
|
+
- **Live capture is mandatory for these observations.** Source files cannot reveal selection-signaling divergence, empty-state-vocabulary divergence, or input-affordance placement — all are render-time decisions. See `evidence-capture-policy.md`.
|
|
177
|
+
- **Two-speed motion on a single control is a deliberate language, not noise.** Sample Product App's primary CTA uses `transition: background 0.2s, transform 0.15s` — geometry settles 50ms faster than color. When a button shifts both color and shape on hover/press, the faster channel feels snappier (responsiveness) while the slower channel adds texture (settling). Avoid "one transition for everything"; tune per channel.
|
|
178
|
+
- **Restraint extends to error states, not just primary surfaces.** Sample Product App's 404 has 5 elements total (icon + title + body + CTA + card). No illustration, no error code, no "did you mean", no search. Empty space IS the signal — "go back, this isn't the path." Pattern: **error/empty states inherit the same restraint as the main app; do not overcompensate with chrome.**
|
|
179
|
+
- **Friction-removal microcopy has a stable shape.** Sample Product App's landing CTA and auth card both pair a primary action with a short / two-clause / bulleted / muted-color qualifier underneath (`No account required · Free to try` and `No account · Groq Llama 3.3`). When a CTA carries friction concern (cost, account, lock-in), follow with two short clauses separated by `·` in muted ≤12pt. Pattern travels — same recipe, two surfaces.
|
|
180
|
+
- **Citation freshness matters.** Lines 171–172 cite Sample Product App's text-only loading label and sparkle "Enhance" inside-textarea pattern; both observed 2026-05-03. The 2026-05-26 capture confirms the landing has been redesigned to a headline-then-CTA model; the textarea-with-Enhance pattern moved one click deeper. The principles still hold; the live citations are as-of-2026-05-03.
|
|
181
|
+
|
|
182
|
+
Evidence: `.build-loop/design-evidence/{sample-voice-ios, sample-timer, sample-reader, sample-product}.md` §"Live IBR Capture (2026-05-26)" — sample product section refreshed 2026-05-26 on port 3155.
|