@r1z4x/tezgah 1.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/CHANGELOG.md +738 -0
- package/LICENSE +21 -0
- package/MANIFEST +753 -0
- package/README.de.md +169 -0
- package/README.es.md +168 -0
- package/README.fr.md +166 -0
- package/README.md +161 -0
- package/README.tr.md +163 -0
- package/agents/tezgah-reviewer.md +70 -0
- package/bin/codegen +337 -0
- package/bin/consult +797 -0
- package/bin/tezgah-adhd +50 -0
- package/bin/tezgah-agents +45 -0
- package/bin/tezgah-capture +66 -0
- package/bin/tezgah-context +96 -0
- package/bin/tezgah-decisions +213 -0
- package/bin/tezgah-design +953 -0
- package/bin/tezgah-docs +1199 -0
- package/bin/tezgah-doctor +497 -0
- package/bin/tezgah-dsh +37 -0
- package/bin/tezgah-dsh.cmd +70 -0
- package/bin/tezgah-gate +75 -0
- package/bin/tezgah-import-ai-research +439 -0
- package/bin/tezgah-index +32 -0
- package/bin/tezgah-lessons +148 -0
- package/bin/tezgah-mcp +322 -0
- package/bin/tezgah-migrate +324 -0
- package/bin/tezgah-pony +50 -0
- package/bin/tezgah-research +772 -0
- package/bin/tezgah-rollback +93 -0
- package/bin/tezgah-route +124 -0
- package/bin/tezgah-setup +5798 -0
- package/bin/tezgah-status +383 -0
- package/bin/tezgah-task +607 -0
- package/bin/tezgah-taste +423 -0
- package/bin/tezgah-triage +485 -0
- package/bin/tezgah.js +36 -0
- package/commands/adhd.md +21 -0
- package/commands/ponytail.md +21 -0
- package/docs/README.md +112 -0
- package/docs/architecture.md +226 -0
- package/docs/citations-baseline.json +59 -0
- package/docs/clarity-baseline.json +116 -0
- package/docs/contract.md +416 -0
- package/docs/environment.md +141 -0
- package/docs/evidence.md +831 -0
- package/docs/feature-audit.md +139 -0
- package/docs/gate.md +407 -0
- package/docs/glossary.md +201 -0
- package/docs/hosts.md +400 -0
- package/docs/index.json +471 -0
- package/docs/judge.md +193 -0
- package/docs/layers.md +189 -0
- package/docs/models.md +160 -0
- package/docs/operations.md +666 -0
- package/docs/research.md +809 -0
- package/docs/results/paired-outcome-2026-10.jsonl +254 -0
- package/docs/results/paired-outcome-2026-10.md +204 -0
- package/docs/skills.md +236 -0
- package/docs/status-line.md +315 -0
- package/docs/testing.md +287 -0
- package/docs/vision.md +117 -0
- package/hooks/hooks.json +33 -0
- package/hooks/projects-auto-init.py +98 -0
- package/hooks/projects-posttooluse.py +149 -0
- package/hooks/projects-pretooluse.py +40 -0
- package/hooks/projects-stop.py +60 -0
- package/hooks/tezgah_agents.py +817 -0
- package/hooks/tezgah_apps.py +266 -0
- package/hooks/tezgah_attest.py +255 -0
- package/hooks/tezgah_clarity.py +171 -0
- package/hooks/tezgah_components.py +140 -0
- package/hooks/tezgah_context.py +2953 -0
- package/hooks/tezgah_embed.py +765 -0
- package/hooks/tezgah_gate.py +2736 -0
- package/hooks/tezgah_guard.py +177 -0
- package/hooks/tezgah_index.py +124 -0
- package/hooks/tezgah_integrity.py +5141 -0
- package/hooks/tezgah_judge.py +487 -0
- package/hooks/tezgah_lang.py +230 -0
- package/hooks/tezgah_lessons.py +210 -0
- package/hooks/tezgah_models.py +855 -0
- package/hooks/tezgah_paths.py +1132 -0
- package/hooks/tezgah_policy.py +1039 -0
- package/hooks/tezgah_rank.py +77 -0
- package/hooks/tezgah_replay.py +1109 -0
- package/hooks/tezgah_research.py +5176 -0
- package/hooks/tezgah_shapes.py +305 -0
- package/hooks/tezgah_skill_pick.py +227 -0
- package/hooks/tezgah_snapshot.py +490 -0
- package/hooks/tezgah_stopspec.py +320 -0
- package/hooks/tezgah_task.py +458 -0
- package/hooks/tezgah_taste.py +201 -0
- package/hooks/tezgah_untrusted.py +112 -0
- package/hooks/tezgah_update.py +430 -0
- package/hosts/codex/hook.py +268 -0
- package/hosts/codex/hooks.json +26 -0
- package/hosts/cursor/hook.py +461 -0
- package/hosts/cursor/hooks.json +44 -0
- package/hosts/dsh/hooks.json +21 -0
- package/hosts/dsh/statusline/lib/client.js +138 -0
- package/hosts/dsh/statusline/lib/index.js +104 -0
- package/hosts/dsh/statusline/package.json +28 -0
- package/hosts/omp/hook.py +277 -0
- package/hosts/omp/tezgah-hook.ts.in +701 -0
- package/hosts/opencode/plugins/tezgah.js +2742 -0
- package/hosts/opencode/tui/tezgah-tui.tsx +151 -0
- package/output-styles/tezgah.md +142 -0
- package/package.json +32 -0
- package/packaging/build.sh +342 -0
- package/packaging/install.ps1 +166 -0
- package/packaging/install.sh +56 -0
- package/packaging/upgrade.sh +142 -0
- package/skills/ai-research/0-autoresearch-skill/SKILL.md +411 -0
- package/skills/ai-research/0-autoresearch-skill/references/agent-continuity.md +95 -0
- package/skills/ai-research/0-autoresearch-skill/references/progress-reporting.md +166 -0
- package/skills/ai-research/0-autoresearch-skill/references/skill-routing.md +219 -0
- package/skills/ai-research/0-autoresearch-skill/templates/findings.md +44 -0
- package/skills/ai-research/0-autoresearch-skill/templates/research-log.md +41 -0
- package/skills/ai-research/01-model-architecture/litgpt/SKILL.md +469 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/custom-models.md +569 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/distributed-training.md +452 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/supported-models.md +337 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/training-recipes.md +620 -0
- package/skills/ai-research/01-model-architecture/mamba/SKILL.md +260 -0
- package/skills/ai-research/01-model-architecture/mamba/references/architecture-details.md +207 -0
- package/skills/ai-research/01-model-architecture/mamba/references/benchmarks.md +256 -0
- package/skills/ai-research/01-model-architecture/mamba/references/training-guide.md +389 -0
- package/skills/ai-research/01-model-architecture/nanogpt/SKILL.md +290 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/architecture.md +383 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/data.md +477 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/training.md +565 -0
- package/skills/ai-research/01-model-architecture/rwkv/SKILL.md +260 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/architecture-details.md +345 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/rwkv7.md +387 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/state-management.md +370 -0
- package/skills/ai-research/01-model-architecture/torchtitan/SKILL.md +358 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/checkpoint.md +182 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/custom-models.md +259 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/float8.md +134 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/fsdp.md +127 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/SKILL.md +516 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/algorithms.md +654 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/integration.md +638 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/pipeline.md +724 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/training.md +566 -0
- package/skills/ai-research/02-tokenization/sentencepiece/SKILL.md +235 -0
- package/skills/ai-research/02-tokenization/sentencepiece/references/algorithms.md +201 -0
- package/skills/ai-research/02-tokenization/sentencepiece/references/training.md +305 -0
- package/skills/ai-research/03-fine-tuning/axolotl/SKILL.md +158 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/api.md +5549 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/dataset-formats.md +1030 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/index.md +16 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/other.md +3564 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/SKILL.md +80 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/_images.md +24 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/advanced.md +1056 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/getting_started.md +350 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/index.md +20 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/other.md +32 -0
- package/skills/ai-research/03-fine-tuning/peft/SKILL.md +431 -0
- package/skills/ai-research/03-fine-tuning/peft/references/advanced-usage.md +515 -0
- package/skills/ai-research/03-fine-tuning/peft/references/troubleshooting.md +481 -0
- package/skills/ai-research/03-fine-tuning/unsloth/SKILL.md +80 -0
- package/skills/ai-research/03-fine-tuning/unsloth/references/index.md +8 -0
- package/skills/ai-research/03-fine-tuning/unsloth/references/llms.md +83 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/SKILL.md +436 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/README.md +79 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/api.md +345 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/tutorials.md +301 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/SKILL.md +473 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/README.md +74 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/api.md +384 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/tutorials.md +377 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/SKILL.md +386 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/README.md +71 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/api.md +334 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/tutorials.md +319 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/SKILL.md +346 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/README.md +55 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/api.md +363 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/tutorials.md +340 -0
- package/skills/ai-research/05-data-processing/nemo-curator/SKILL.md +383 -0
- package/skills/ai-research/05-data-processing/nemo-curator/references/deduplication.md +88 -0
- package/skills/ai-research/05-data-processing/nemo-curator/references/filtering.md +103 -0
- package/skills/ai-research/05-data-processing/ray-data/SKILL.md +326 -0
- package/skills/ai-research/05-data-processing/ray-data/references/integration.md +83 -0
- package/skills/ai-research/05-data-processing/ray-data/references/transformations.md +84 -0
- package/skills/ai-research/06-post-training/grpo-rl-training/README.md +98 -0
- package/skills/ai-research/06-post-training/grpo-rl-training/SKILL.md +572 -0
- package/skills/ai-research/06-post-training/miles/SKILL.md +315 -0
- package/skills/ai-research/06-post-training/miles/references/api-reference.md +142 -0
- package/skills/ai-research/06-post-training/miles/references/troubleshooting.md +353 -0
- package/skills/ai-research/06-post-training/openrlhf/SKILL.md +249 -0
- package/skills/ai-research/06-post-training/openrlhf/references/algorithm-comparison.md +405 -0
- package/skills/ai-research/06-post-training/openrlhf/references/custom-rewards.md +531 -0
- package/skills/ai-research/06-post-training/openrlhf/references/hybrid-engine.md +288 -0
- package/skills/ai-research/06-post-training/openrlhf/references/multi-node-training.md +455 -0
- package/skills/ai-research/06-post-training/simpo/SKILL.md +219 -0
- package/skills/ai-research/06-post-training/simpo/references/datasets.md +479 -0
- package/skills/ai-research/06-post-training/simpo/references/hyperparameters.md +453 -0
- package/skills/ai-research/06-post-training/simpo/references/loss-functions.md +351 -0
- package/skills/ai-research/06-post-training/slime/SKILL.md +464 -0
- package/skills/ai-research/06-post-training/slime/references/api-reference.md +393 -0
- package/skills/ai-research/06-post-training/slime/references/troubleshooting.md +387 -0
- package/skills/ai-research/06-post-training/torchforge/SKILL.md +433 -0
- package/skills/ai-research/06-post-training/torchforge/references/api-reference.md +328 -0
- package/skills/ai-research/06-post-training/torchforge/references/troubleshooting.md +410 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/SKILL.md +455 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/dpo-variants.md +228 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/online-rl.md +83 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/reward-modeling.md +123 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/sft-training.md +169 -0
- package/skills/ai-research/06-post-training/verl/SKILL.md +391 -0
- package/skills/ai-research/06-post-training/verl/references/api-reference.md +302 -0
- package/skills/ai-research/06-post-training/verl/references/troubleshooting.md +392 -0
- package/skills/ai-research/07-safety-alignment/constitutional-ai/SKILL.md +290 -0
- package/skills/ai-research/07-safety-alignment/llamaguard/SKILL.md +337 -0
- package/skills/ai-research/07-safety-alignment/nemo-guardrails/SKILL.md +297 -0
- package/skills/ai-research/07-safety-alignment/prompt-guard/SKILL.md +312 -0
- package/skills/ai-research/08-distributed-training/accelerate/SKILL.md +332 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/custom-plugins.md +454 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/megatron-integration.md +490 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/performance.md +526 -0
- package/skills/ai-research/08-distributed-training/deepspeed/SKILL.md +141 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/08.md +18 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/09.md +174 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/2020.md +379 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/2023.md +280 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/assets.md +180 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/index.md +36 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/mii.md +119 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/other.md +1192 -0
- package/skills/ai-research/08-distributed-training/megatron-core/SKILL.md +366 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/benchmarks.md +250 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/parallelism-guide.md +405 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/production-examples.md +474 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/training-recipes.md +548 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/SKILL.md +231 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_async_recipe.md +14 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_overview.md +19 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_recipe.md +18 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_ddp_notes.md +10 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_device_mesh_tutorial.md +22 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_examples_fsdp2.md +15 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp1_api.md +9 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp2_tutorial.md +45 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fully_shard_api.md +49 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_tp_tutorial.md +22 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/ray_train_fsdp2_example.md +13 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/torchtitan_fsdp_notes.md +14 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/SKILL.md +346 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/callbacks.md +437 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/distributed.md +491 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/hyperparameter-tuning.md +557 -0
- package/skills/ai-research/08-distributed-training/ray-train/SKILL.md +406 -0
- package/skills/ai-research/08-distributed-training/ray-train/references/multi-node.md +629 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/SKILL.md +545 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/references/advanced-usage.md +612 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/references/troubleshooting.md +531 -0
- package/skills/ai-research/09-infrastructure/modal/SKILL.md +341 -0
- package/skills/ai-research/09-infrastructure/modal/references/advanced-usage.md +504 -0
- package/skills/ai-research/09-infrastructure/modal/references/troubleshooting.md +495 -0
- package/skills/ai-research/09-infrastructure/skypilot/SKILL.md +509 -0
- package/skills/ai-research/09-infrastructure/skypilot/references/advanced-usage.md +492 -0
- package/skills/ai-research/09-infrastructure/skypilot/references/troubleshooting.md +571 -0
- package/skills/ai-research/10-optimization/awq/SKILL.md +310 -0
- package/skills/ai-research/10-optimization/awq/references/advanced-usage.md +325 -0
- package/skills/ai-research/10-optimization/awq/references/troubleshooting.md +345 -0
- package/skills/ai-research/10-optimization/bitsandbytes/SKILL.md +411 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/memory-optimization.md +522 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/qlora-training.md +522 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/quantization-formats.md +448 -0
- package/skills/ai-research/10-optimization/flash-attention/SKILL.md +367 -0
- package/skills/ai-research/10-optimization/flash-attention/references/benchmarks.md +216 -0
- package/skills/ai-research/10-optimization/flash-attention/references/transformers-integration.md +294 -0
- package/skills/ai-research/10-optimization/gguf/SKILL.md +427 -0
- package/skills/ai-research/10-optimization/gguf/references/advanced-usage.md +505 -0
- package/skills/ai-research/10-optimization/gguf/references/troubleshooting.md +443 -0
- package/skills/ai-research/10-optimization/gptq/SKILL.md +450 -0
- package/skills/ai-research/10-optimization/gptq/references/calibration.md +338 -0
- package/skills/ai-research/10-optimization/gptq/references/integration.md +130 -0
- package/skills/ai-research/10-optimization/gptq/references/troubleshooting.md +96 -0
- package/skills/ai-research/10-optimization/hqq/SKILL.md +445 -0
- package/skills/ai-research/10-optimization/hqq/references/advanced-usage.md +529 -0
- package/skills/ai-research/10-optimization/hqq/references/troubleshooting.md +504 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/SKILL.md +319 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/architecture.md +320 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/biomedical.md +498 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/domain-specific.md +626 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/experiment-loop.md +129 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/optimizers.md +330 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/scaling-and-selection.md +428 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/SKILL.md +405 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/benchmarks.md +394 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/custom-tasks.md +425 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/issues.md +395 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/SKILL.md +490 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/api-evaluation.md +491 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/benchmark-guide.md +489 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/custom-tasks.md +603 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/distributed-eval.md +520 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/SKILL.md +494 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/adapter-system.md +341 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/configuration.md +448 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/custom-benchmarks.md +316 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/execution-backends.md +362 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/SKILL.md +258 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/optimization.md +90 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/quantization.md +214 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/server.md +126 -0
- package/skills/ai-research/12-inference-serving/sglang/SKILL.md +442 -0
- package/skills/ai-research/12-inference-serving/sglang/references/deployment.md +491 -0
- package/skills/ai-research/12-inference-serving/sglang/references/radix-attention.md +414 -0
- package/skills/ai-research/12-inference-serving/sglang/references/structured-generation.md +542 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/SKILL.md +187 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/multi-gpu.md +299 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/optimization.md +243 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/serving.md +471 -0
- package/skills/ai-research/12-inference-serving/vllm/SKILL.md +364 -0
- package/skills/ai-research/12-inference-serving/vllm/references/optimization.md +227 -0
- package/skills/ai-research/12-inference-serving/vllm/references/quantization.md +285 -0
- package/skills/ai-research/12-inference-serving/vllm/references/server-deployment.md +256 -0
- package/skills/ai-research/12-inference-serving/vllm/references/troubleshooting.md +448 -0
- package/skills/ai-research/13-mlops/mlflow/SKILL.md +704 -0
- package/skills/ai-research/13-mlops/mlflow/references/deployment.md +745 -0
- package/skills/ai-research/13-mlops/mlflow/references/model-registry.md +771 -0
- package/skills/ai-research/13-mlops/mlflow/references/tracking.md +681 -0
- package/skills/ai-research/13-mlops/swanlab/SKILL.md +406 -0
- package/skills/ai-research/13-mlops/swanlab/references/integrations.md +305 -0
- package/skills/ai-research/13-mlops/swanlab/references/visualization.md +234 -0
- package/skills/ai-research/13-mlops/tensorboard/SKILL.md +629 -0
- package/skills/ai-research/13-mlops/tensorboard/references/integrations.md +639 -0
- package/skills/ai-research/13-mlops/tensorboard/references/profiling.md +546 -0
- package/skills/ai-research/13-mlops/tensorboard/references/visualization.md +621 -0
- package/skills/ai-research/13-mlops/weights-and-biases/SKILL.md +590 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/artifacts.md +585 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/integrations.md +701 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/sweeps.md +848 -0
- package/skills/ai-research/14-agents/a-evolve/SKILL.md +383 -0
- package/skills/ai-research/14-agents/a-evolve/references/README.md +831 -0
- package/skills/ai-research/14-agents/a-evolve/references/api.md +594 -0
- package/skills/ai-research/14-agents/a-evolve/references/architecture.md +417 -0
- package/skills/ai-research/14-agents/a-evolve/references/design-patterns.md +462 -0
- package/skills/ai-research/14-agents/a-evolve/references/examples.md +352 -0
- package/skills/ai-research/14-agents/a-evolve/references/issues.md +591 -0
- package/skills/ai-research/14-agents/a-evolve/references/releases.md +112 -0
- package/skills/ai-research/14-agents/a-evolve/references/tutorials.md +819 -0
- package/skills/ai-research/14-agents/autogpt/SKILL.md +403 -0
- package/skills/ai-research/14-agents/autogpt/references/advanced-usage.md +536 -0
- package/skills/ai-research/14-agents/autogpt/references/troubleshooting.md +421 -0
- package/skills/ai-research/14-agents/crewai/SKILL.md +498 -0
- package/skills/ai-research/14-agents/crewai/references/flows.md +439 -0
- package/skills/ai-research/14-agents/crewai/references/tools.md +430 -0
- package/skills/ai-research/14-agents/crewai/references/troubleshooting.md +481 -0
- package/skills/ai-research/14-agents/langchain/SKILL.md +480 -0
- package/skills/ai-research/14-agents/langchain/references/agents.md +500 -0
- package/skills/ai-research/14-agents/langchain/references/integration.md +563 -0
- package/skills/ai-research/14-agents/langchain/references/rag.md +601 -0
- package/skills/ai-research/14-agents/llamaindex/SKILL.md +569 -0
- package/skills/ai-research/14-agents/llamaindex/references/agents.md +84 -0
- package/skills/ai-research/14-agents/llamaindex/references/data_connectors.md +109 -0
- package/skills/ai-research/14-agents/llamaindex/references/query_engines.md +407 -0
- package/skills/ai-research/15-rag/chroma/SKILL.md +406 -0
- package/skills/ai-research/15-rag/chroma/references/integration.md +39 -0
- package/skills/ai-research/15-rag/faiss/SKILL.md +221 -0
- package/skills/ai-research/15-rag/faiss/references/index_types.md +281 -0
- package/skills/ai-research/15-rag/pinecone/SKILL.md +358 -0
- package/skills/ai-research/15-rag/pinecone/references/deployment.md +182 -0
- package/skills/ai-research/15-rag/qdrant/SKILL.md +493 -0
- package/skills/ai-research/15-rag/qdrant/references/advanced-usage.md +649 -0
- package/skills/ai-research/15-rag/qdrant/references/troubleshooting.md +632 -0
- package/skills/ai-research/15-rag/sentence-transformers/SKILL.md +255 -0
- package/skills/ai-research/15-rag/sentence-transformers/references/models.md +124 -0
- package/skills/ai-research/16-prompt-engineering/dspy/SKILL.md +590 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/examples.md +664 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/modules.md +476 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/optimizers.md +567 -0
- package/skills/ai-research/16-prompt-engineering/guidance/SKILL.md +572 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/backends.md +555 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/constraints.md +675 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/examples.md +768 -0
- package/skills/ai-research/16-prompt-engineering/instructor/SKILL.md +740 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/examples.md +108 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/providers.md +71 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/validation.md +607 -0
- package/skills/ai-research/16-prompt-engineering/outlines/SKILL.md +652 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/backends.md +616 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/examples.md +774 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/json_generation.md +653 -0
- package/skills/ai-research/17-observability/langsmith/SKILL.md +422 -0
- package/skills/ai-research/17-observability/langsmith/references/advanced-usage.md +549 -0
- package/skills/ai-research/17-observability/langsmith/references/troubleshooting.md +538 -0
- package/skills/ai-research/17-observability/phoenix/SKILL.md +475 -0
- package/skills/ai-research/17-observability/phoenix/references/advanced-usage.md +620 -0
- package/skills/ai-research/17-observability/phoenix/references/troubleshooting.md +539 -0
- package/skills/ai-research/18-multimodal/audiocraft/SKILL.md +564 -0
- package/skills/ai-research/18-multimodal/audiocraft/references/advanced-usage.md +667 -0
- package/skills/ai-research/18-multimodal/audiocraft/references/troubleshooting.md +505 -0
- package/skills/ai-research/18-multimodal/blip-2/SKILL.md +564 -0
- package/skills/ai-research/18-multimodal/blip-2/references/advanced-usage.md +681 -0
- package/skills/ai-research/18-multimodal/blip-2/references/troubleshooting.md +527 -0
- package/skills/ai-research/18-multimodal/clip/SKILL.md +253 -0
- package/skills/ai-research/18-multimodal/clip/references/applications.md +208 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/SKILL.md +402 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/references/libero-commands.md +175 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/references/robocasa-commands.md +147 -0
- package/skills/ai-research/18-multimodal/llava/SKILL.md +304 -0
- package/skills/ai-research/18-multimodal/llava/references/training.md +198 -0
- package/skills/ai-research/18-multimodal/openpi/SKILL.md +480 -0
- package/skills/ai-research/18-multimodal/openpi/references/checkpoints-and-env-map.md +86 -0
- package/skills/ai-research/18-multimodal/openpi/references/config-recipes.md +50 -0
- package/skills/ai-research/18-multimodal/openpi/references/pytorch-gotchas.md +49 -0
- package/skills/ai-research/18-multimodal/openpi/references/remote-client-pattern.md +48 -0
- package/skills/ai-research/18-multimodal/openpi/references/training-debugging.md +46 -0
- package/skills/ai-research/18-multimodal/openvla-oft/SKILL.md +441 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/aloha-workflow.md +141 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/config-troubleshooting.md +97 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/libero-workflow.md +115 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/paper-and-checkpoints.md +84 -0
- package/skills/ai-research/18-multimodal/segment-anything/SKILL.md +500 -0
- package/skills/ai-research/18-multimodal/segment-anything/references/advanced-usage.md +590 -0
- package/skills/ai-research/18-multimodal/segment-anything/references/troubleshooting.md +485 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/SKILL.md +519 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/references/advanced-usage.md +717 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/references/troubleshooting.md +556 -0
- package/skills/ai-research/18-multimodal/whisper/SKILL.md +317 -0
- package/skills/ai-research/18-multimodal/whisper/references/languages.md +190 -0
- package/skills/ai-research/19-emerging-techniques/knowledge-distillation/SKILL.md +458 -0
- package/skills/ai-research/19-emerging-techniques/knowledge-distillation/references/minillm.md +335 -0
- package/skills/ai-research/19-emerging-techniques/long-context/SKILL.md +536 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/extension_methods.md +469 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/fine_tuning.md +612 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/rope.md +403 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/SKILL.md +497 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/coefficient-tuning.md +415 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/evaluation.md +463 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/examples.md +429 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/methods.md +353 -0
- package/skills/ai-research/19-emerging-techniques/model-pruning/SKILL.md +495 -0
- package/skills/ai-research/19-emerging-techniques/model-pruning/references/wanda.md +348 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/SKILL.md +526 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/architectures.md +433 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/inference.md +349 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/training.md +426 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/SKILL.md +467 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/lookahead.md +310 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/medusa.md +351 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/SKILL.md +479 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/data-visualization.md +509 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/diagram-generation.md +395 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/style-guide.md +305 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/SKILL.md +982 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/checklists.md +348 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/citation-workflow.md +563 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/reviewer-guidelines.md +349 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/sources.md +165 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/writing-guide.md +477 -0
- package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/SKILL.md +298 -0
- package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/references/slide-templates.md +505 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/SKILL.md +270 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/checklist.md +279 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/reviewer-guidelines.md +116 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/section-blueprints.md +400 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/systems-conferences.md +261 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/writing-patterns.md +231 -0
- package/skills/ai-research/21-research-ideation/brainstorming-research-ideas/SKILL.md +384 -0
- package/skills/ai-research/21-research-ideation/creative-thinking-for-research/SKILL.md +366 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/SKILL.md +245 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/ara-schema.md +439 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/exploration-tree-spec.md +125 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/validation-checklist.md +149 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/SKILL.md +324 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/event-taxonomy.md +124 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/provenance-tags.md +190 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/session-protocol.md +162 -0
- package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/SKILL.md +322 -0
- package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/references/review-dimensions.md +182 -0
- package/skills/ai-research/SKILL.md +101 -0
- package/skills/ai-research/SOURCE +38 -0
- package/skills/ai-research/index/1-frame.md +18 -0
- package/skills/ai-research/index/2-data.md +21 -0
- package/skills/ai-research/index/3-train.md +48 -0
- package/skills/ai-research/index/4-measure.md +25 -0
- package/skills/ai-research/index/5-run.md +23 -0
- package/skills/ai-research/index/6-write.md +35 -0
- package/skills/ai-research/library.json +3456 -0
- package/skills/analyze-app/EVALS.md +82 -0
- package/skills/analyze-app/SKILL.md +188 -0
- package/skills/design-contract/EVALS.md +80 -0
- package/skills/design-contract/SKILL.md +171 -0
- package/skills/design-library/EVALS.md +85 -0
- package/skills/design-library/INDEX.md +59 -0
- package/skills/design-library/SKILL.md +58 -0
- package/skills/design-library/SOURCE +131 -0
- package/skills/design-library/adaptive-interfaces/skills/colour-independence/SKILL.md +90 -0
- package/skills/design-library/adaptive-interfaces/skills/flexible-typography/SKILL.md +83 -0
- package/skills/design-library/adaptive-interfaces/skills/information-density/SKILL.md +87 -0
- package/skills/design-library/adaptive-interfaces/skills/preference-audit/SKILL.md +70 -0
- package/skills/design-library/adaptive-interfaces/skills/responsive-accessibility/SKILL.md +86 -0
- package/skills/design-library/adaptive-interfaces/skills/responsive-review/SKILL.md +76 -0
- package/skills/design-library/adaptive-interfaces/skills/simplified-views/SKILL.md +97 -0
- package/skills/design-library/adaptive-interfaces/skills/specify/SKILL.md +63 -0
- package/skills/design-library/adaptive-interfaces/skills/user-preference-respect/SKILL.md +100 -0
- package/skills/design-library/cognitive-accessibility/skills/adaptive-personalisation/SKILL.md +61 -0
- package/skills/design-library/cognitive-accessibility/skills/assess-load/SKILL.md +48 -0
- package/skills/design-library/cognitive-accessibility/skills/cognitive-load-assessment/SKILL.md +60 -0
- package/skills/design-library/cognitive-accessibility/skills/contextual-help-design/SKILL.md +61 -0
- package/skills/design-library/cognitive-accessibility/skills/error-prevention-recovery/SKILL.md +71 -0
- package/skills/design-library/cognitive-accessibility/skills/focus-attention-design/SKILL.md +67 -0
- package/skills/design-library/cognitive-accessibility/skills/memory-load-reduction/SKILL.md +60 -0
- package/skills/design-library/cognitive-accessibility/skills/plain-language-design/SKILL.md +78 -0
- package/skills/design-library/cognitive-accessibility/skills/review/SKILL.md +56 -0
- package/skills/design-library/cognitive-accessibility/skills/simplify/SKILL.md +39 -0
- package/skills/design-library/cognitive-accessibility/skills/wayfinding-navigation/SKILL.md +64 -0
- package/skills/design-library/design-research/skills/behavioural-analytics/SKILL.md +33 -0
- package/skills/design-library/design-research/skills/qual-quant-triangulation/SKILL.md +33 -0
- package/skills/design-library/inclusive-interaction/skills/audit/SKILL.md +50 -0
- package/skills/design-library/inclusive-interaction/skills/design-flow/SKILL.md +58 -0
- package/skills/design-library/inclusive-interaction/skills/feedback-and-status/SKILL.md +76 -0
- package/skills/design-library/inclusive-interaction/skills/gesture-alternatives/SKILL.md +70 -0
- package/skills/design-library/inclusive-interaction/skills/keyboard-navigation/SKILL.md +99 -0
- package/skills/design-library/inclusive-interaction/skills/keyboard-review/SKILL.md +54 -0
- package/skills/design-library/inclusive-interaction/skills/motion-sensitivity/SKILL.md +79 -0
- package/skills/design-library/inclusive-interaction/skills/multi-modal-input/SKILL.md +70 -0
- package/skills/design-library/inclusive-interaction/skills/touch-target-design/SKILL.md +71 -0
- package/skills/design-library/inclusive-interaction/skills/voice-interaction/SKILL.md +68 -0
- package/skills/design-library/visual-critique/skills/critique-affordance/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-brand-consistency/SKILL.md +42 -0
- package/skills/design-library/visual-critique/skills/critique-color/SKILL.md +44 -0
- package/skills/design-library/visual-critique/skills/critique-composition/SKILL.md +46 -0
- package/skills/design-library/visual-critique/skills/critique-information-density/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-typography/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-visual-hierarchy/SKILL.md +40 -0
- package/skills/feature-audit/EVALS.md +83 -0
- package/skills/feature-audit/SKILL.md +326 -0
- package/skills/harness/EVALS.md +81 -0
- package/skills/harness/SKILL.md +88 -0
- package/skills/i-have-adhd/EVALS.md +80 -0
- package/skills/i-have-adhd/SKILL.md +183 -0
- package/skills/no-ai-slop/EVALS.md +89 -0
- package/skills/no-ai-slop/SKILL.md +209 -0
- package/skills/no-ai-slop/eval.md +52 -0
- package/skills/plan-add/EVALS.md +79 -0
- package/skills/plan-add/SKILL.md +179 -0
- package/skills/plan-add/render_table.py +72 -0
- package/skills/plan-status/EVALS.md +78 -0
- package/skills/plan-status/SKILL.md +52 -0
- package/skills/plan-sync/EVALS.md +80 -0
- package/skills/plan-sync/SKILL.md +69 -0
- package/skills/pm-frameworks/SKILL.md +33 -0
- package/skills/pm-frameworks/SOURCE +39 -0
- package/skills/pm-frameworks/intended-vs-implemented/SKILL.md +42 -0
- package/skills/pm-frameworks/opportunity-solution-tree/SKILL.md +64 -0
- package/skills/ponytail/EVALS.md +80 -0
- package/skills/ponytail/SKILL.md +124 -0
- package/skills/product-analysis/EVALS.md +103 -0
- package/skills/product-analysis/SKILL.md +361 -0
- package/skills/research/EVALS.md +104 -0
- package/skills/research/SKILL.md +570 -0
- package/skills/rl-env/SKILL.md +53 -0
- package/skills/rl-env/SOURCE +41 -0
- package/skills/rl-env/generate-nemo-gym-env/SKILL.md +169 -0
- package/skills/rl-env/generate-nemo-gym-env/references/architecture.md +114 -0
- package/skills/rl-env/generate-openenv-env/SKILL.md +183 -0
- package/skills/rl-env/generate-openenv-env/references/architecture.md +82 -0
- package/skills/rl-env/generate-ors-env/SKILL.md +209 -0
- package/skills/rl-env/generate-ors-env/references/architecture.md +113 -0
- package/skills/rl-env/generate-verifiers-env/SKILL.md +188 -0
- package/skills/rl-env/generate-verifiers-env/references/architecture.md +119 -0
- package/skills/rl-env/rl-env-from-description/SKILL.md +124 -0
- package/skills/rl-env/rl-env-from-description/references/interview.md +75 -0
- package/skills/rl-env/rl-env-from-description/references/nemo_gym.md +41 -0
- package/skills/rl-env/rl-env-from-description/references/openenv.md +35 -0
- package/skills/rl-env/rl-env-from-description/references/ors.md +50 -0
- package/skills/rl-env/rl-env-from-description/references/verifiers.md +39 -0
- package/skills/tezgah-contract/EVALS.md +78 -0
- package/skills/tezgah-contract/SKILL.md +792 -0
- package/statusline.py +129 -0
- package/workflows/graph-impact.js +153 -0
- package/workflows/graph-map.js +158 -0
- package/workflows/graph-review.js +170 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: critique-composition
|
|
3
|
+
description: Critique a rendered screen's composition — balance, whitespace, rhythm, and gestalt grouping. Use when a layout feels off but hierarchy is fine. For emphasis and eye flow specifically, use `critique-visual-hierarchy`.
|
|
4
|
+
---
|
|
5
|
+
# Critique Composition
|
|
6
|
+
You are an expert in visual composition and gestalt-based design critique.
|
|
7
|
+
## What You Do
|
|
8
|
+
You analyse the spatial and structural qualities of a screen: how elements are balanced across the canvas, how whitespace is used to create breathing room and focus, how rhythmic repetition creates coherence, and how gestalt principles are (or aren't) applied. You flag compositional weaknesses and propose specific fixes.
|
|
9
|
+
## Critique Dimensions
|
|
10
|
+
### Balance
|
|
11
|
+
Evaluate the distribution of visual weight across the layout.
|
|
12
|
+
- Is the composition symmetrically or asymmetrically balanced? Is the choice intentional?
|
|
13
|
+
- Are heavy elements (dark fills, large images, dense text blocks) offset by lighter ones?
|
|
14
|
+
- Does the layout feel stable, or does it tip — top-heavy, bottom-heavy, left-leaning?
|
|
15
|
+
- Is there a clear visual centre of gravity?
|
|
16
|
+
### Whitespace
|
|
17
|
+
Evaluate the use of negative space as an active design element.
|
|
18
|
+
- Is there sufficient macro whitespace between major sections?
|
|
19
|
+
- Is micro whitespace (between labels, icons, and adjacent elements) consistent?
|
|
20
|
+
- Does whitespace guide attention, or does it fragment the layout into disconnected areas?
|
|
21
|
+
- Are any areas over-compressed or padded inconsistently?
|
|
22
|
+
### Rhythm
|
|
23
|
+
Evaluate repetition, pattern, and visual cadence across the screen.
|
|
24
|
+
- Are spacing intervals consistent and derived from a spacing scale?
|
|
25
|
+
- Do repeated elements (cards, list items, form rows) maintain uniform sizing and gaps?
|
|
26
|
+
- Is there visual variety without chaos — a balance of repetition and differentiation?
|
|
27
|
+
- Do section breaks and dividers create a legible page cadence?
|
|
28
|
+
### Gestalt Principles
|
|
29
|
+
Evaluate how the layout exploits perceptual grouping.
|
|
30
|
+
- **Proximity**: Are related elements close together? Are unrelated elements clearly separated?
|
|
31
|
+
- **Similarity**: Do elements that share a function share a visual treatment?
|
|
32
|
+
- **Figure/Ground**: Is the foreground content clearly distinct from the background?
|
|
33
|
+
- **Continuity**: Do alignment and flow lines lead the eye smoothly through the composition?
|
|
34
|
+
- **Closure**: Are incomplete shapes or groups still perceived correctly?
|
|
35
|
+
## Output Format
|
|
36
|
+
For each dimension — Balance, Whitespace, Rhythm, Gestalt — provide:
|
|
37
|
+
1. **Observation** — what you see (neutral, factual)
|
|
38
|
+
2. **Problem** — what is broken and why it matters
|
|
39
|
+
3. **Fix** — a specific, actionable change
|
|
40
|
+
Rate each dimension: `pass` / `minor issue` / `major issue`.
|
|
41
|
+
## Common Failure Patterns
|
|
42
|
+
- Equal-weight two-column layout with no clear primary/secondary split
|
|
43
|
+
- Inconsistent padding — some components use 16px, others 20px or 24px with no system
|
|
44
|
+
- Orphaned elements that float without proximity to their related group
|
|
45
|
+
- Overcrowded sections adjacent to empty ones, creating unintentional visual cliffs
|
|
46
|
+
- Competing horizontal rules and dividers that multiply without adding structure
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: critique-information-density
|
|
3
|
+
description: Critique a rendered screen's density — cognitive load, content prioritisation, scanning patterns, and progressive disclosure. Use when a screen feels overwhelming. For the underlying choice-count principle, use `hicks-law` (interaction-design).
|
|
4
|
+
---
|
|
5
|
+
# Critique Information Density
|
|
6
|
+
You are an expert in information architecture and cognitive load management in UI design.
|
|
7
|
+
## What You Do
|
|
8
|
+
You evaluate how much information is present on a screen, whether it is the right information, and whether it is organised to match how users scan and process content. You flag density failures and propose specific fixes.
|
|
9
|
+
## Critique Dimensions
|
|
10
|
+
### Cognitive Load
|
|
11
|
+
Evaluate whether the screen asks users to hold too much in working memory.
|
|
12
|
+
- How many distinct decisions or pieces of information does a user need to process to complete the primary task?
|
|
13
|
+
- Are unrelated elements competing for attention on the same screen?
|
|
14
|
+
- Is the page trying to serve multiple user goals at once when it should be focused on one?
|
|
15
|
+
- Are any elements present that do not serve the current user task — decoration, secondary data, metadata noise?
|
|
16
|
+
### Content Priority
|
|
17
|
+
Evaluate whether the most important content is most visible.
|
|
18
|
+
- Is the primary information a user needs to act on above the fold?
|
|
19
|
+
- Is supporting information (context, explanation, metadata) visually subordinate to primary content?
|
|
20
|
+
- Are there content elements with equal visual weight that do not have equal user importance?
|
|
21
|
+
- Is any critical information buried — in tooltips, collapsed sections, or low-contrast secondary text?
|
|
22
|
+
### Scanning Pattern
|
|
23
|
+
Evaluate whether the layout supports how users actually read screens.
|
|
24
|
+
- Does the content structure match F-pattern (left-aligned lists, tables) or Z-pattern (hero + CTA layouts) based on context?
|
|
25
|
+
- Are labels left-aligned and consistent so users can scan vertically without reading every word?
|
|
26
|
+
- Are numbers, dates, and status values aligned and formatted consistently in lists and tables?
|
|
27
|
+
- Does the content break into scannable chunks — short paragraphs, headers, bullets — rather than dense prose?
|
|
28
|
+
### Progressive Disclosure
|
|
29
|
+
Evaluate whether complexity is revealed incrementally.
|
|
30
|
+
- Is all available information shown at once, or is detail deferred to a detail view?
|
|
31
|
+
- Do expandable sections, tabs, and modals earn their use — hiding genuinely secondary content, not primary actions?
|
|
32
|
+
- Are advanced options and edge-case content separated from the primary flow?
|
|
33
|
+
- Does the screen present a clear starting point, or is the entry path ambiguous because too much is visible at once?
|
|
34
|
+
## Output Format
|
|
35
|
+
For each dimension — Cognitive Load, Content Priority, Scanning Pattern, Progressive Disclosure — provide:
|
|
36
|
+
1. **Observation** — what you see (neutral, factual)
|
|
37
|
+
2. **Problem** — what is broken and why it matters
|
|
38
|
+
3. **Fix** — a specific, actionable change
|
|
39
|
+
Rate each dimension: `pass` / `minor issue` / `major issue`.
|
|
40
|
+
## Common Failure Patterns
|
|
41
|
+
- Dashboard screens that show every available metric instead of the most actionable ones
|
|
42
|
+
- Detail pages that inline all related objects instead of linking to them
|
|
43
|
+
- Tables with 10+ columns where 3 columns do 90% of the user's work
|
|
44
|
+
- Forms that show all fields at once when a multi-step flow would reduce perceived complexity
|
|
45
|
+
- Content-heavy onboarding that front-loads explanation before the user has done anything
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: critique-typography
|
|
3
|
+
description: Critique a rendered screen's typography — scale usage, readability, consistency, and token compliance. Use when reviewing type on a screen. For defining the scale itself, use `typography-scale` (ui-design).
|
|
4
|
+
---
|
|
5
|
+
# Critique Typography
|
|
6
|
+
You are an expert in typographic systems and screen-level type critique.
|
|
7
|
+
## What You Do
|
|
8
|
+
You audit all typographic decisions on a screen: whether the type scale is applied correctly, whether text is readable at its context, whether type choices are consistent across the view, and whether design tokens are used in place of raw values. You flag problems and provide specific fixes.
|
|
9
|
+
## Critique Dimensions
|
|
10
|
+
### Scale Usage
|
|
11
|
+
Evaluate whether the type scale is applied as a system, not ad hoc.
|
|
12
|
+
- Are only defined scale steps used (e.g., display, h1–h4, body-lg, body-sm, caption)?
|
|
13
|
+
- Is each scale step used for its intended purpose — headings as headings, labels as labels?
|
|
14
|
+
- Are intermediate or arbitrary sizes present that fall outside the defined scale?
|
|
15
|
+
- Does the scale create sufficient contrast between hierarchy levels (recommend ≥1.25× ratio per step)?
|
|
16
|
+
### Readability
|
|
17
|
+
Evaluate whether text can be read comfortably in its context.
|
|
18
|
+
- Do body text sizes meet minimum thresholds (16px / 1rem on desktop; 14px on mobile minimum)?
|
|
19
|
+
- Is line-height set for the content type: tighter for headings (1.1–1.3), looser for body (1.4–1.6)?
|
|
20
|
+
- Is line length (measure) within 45–75 characters for body copy?
|
|
21
|
+
- Is letter-spacing appropriate — not over-tracked or compressed to the point of friction?
|
|
22
|
+
- Is contrast ratio between text and background WCAG AA compliant (4.5:1 body, 3:1 large text)?
|
|
23
|
+
### Consistency
|
|
24
|
+
Evaluate whether type decisions are uniform across the screen.
|
|
25
|
+
- Do semantically equivalent elements (e.g., all card titles, all form labels) use the same type style?
|
|
26
|
+
- Are alignment choices consistent — left, centre, or right applied with intention and not mixed randomly?
|
|
27
|
+
- Are font weights used consistently and not randomly varied (e.g., some labels bold, others regular)?
|
|
28
|
+
- Are there orphaned styles — one-off type treatments not used elsewhere?
|
|
29
|
+
### Token Compliance
|
|
30
|
+
Evaluate whether typography tokens are applied instead of raw values.
|
|
31
|
+
- Are font-family, font-size, font-weight, line-height, and letter-spacing set via tokens?
|
|
32
|
+
- Are any hardcoded CSS or design property values present that should reference a token?
|
|
33
|
+
- List every non-compliant value with its correct token name.
|
|
34
|
+
## Output Format
|
|
35
|
+
For each dimension — Scale, Readability, Consistency, Token Compliance — provide:
|
|
36
|
+
1. **Observation** — what you see (neutral, factual)
|
|
37
|
+
2. **Problem** — what is broken and why it matters
|
|
38
|
+
3. **Fix** — a specific, actionable change (including correct token name where applicable)
|
|
39
|
+
Rate each dimension: `pass` / `minor issue` / `major issue`.
|
|
40
|
+
## Common Failure Patterns
|
|
41
|
+
- Scale drift — designers nudging sizes by 1–2px instead of moving to the next defined step
|
|
42
|
+
- Line-height mismatches — display sizes with body line-height and vice versa
|
|
43
|
+
- Alignment mixing — centred headings above left-aligned body text without intentional justification
|
|
44
|
+
- Hardcoded font-size values in components because the token was not found or not updated
|
|
45
|
+
- Over-use of bold — more than two weight levels active on a single screen dilutes contrast
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: critique-visual-hierarchy
|
|
3
|
+
description: Critique a rendered screen's hierarchy — entry point, eye flow, weight distribution, and emphasis. Use when attention lands in the wrong place. For establishing hierarchy in new work, use `visual-hierarchy` (ui-design).
|
|
4
|
+
---
|
|
5
|
+
# Critique Visual Hierarchy
|
|
6
|
+
You are an expert in visual hierarchy and screen-level design critique.
|
|
7
|
+
## What You Do
|
|
8
|
+
You analyse a screen to identify whether hierarchy is clear, intentional, and aligned with user goals. You flag problems and suggest targeted fixes.
|
|
9
|
+
## Critique Dimensions
|
|
10
|
+
### Entry Point
|
|
11
|
+
The first element that captures the eye. Evaluate whether it is the *most important* thing on screen.
|
|
12
|
+
- Is there a single dominant element, or does attention scatter?
|
|
13
|
+
- Does size, contrast, or position establish the entry point clearly?
|
|
14
|
+
- Does the entry point match the primary user goal for this screen?
|
|
15
|
+
### Eye Flow
|
|
16
|
+
The path a user's eye travels after landing. Evaluate whether the path is deliberate and efficient.
|
|
17
|
+
- Does the layout follow an F-pattern, Z-pattern, or intentional reading order?
|
|
18
|
+
- Are there dead ends, loops, or confusing jumps?
|
|
19
|
+
- Does flow lead naturally to the primary call-to-action?
|
|
20
|
+
### Weight
|
|
21
|
+
The relative visual importance of each element. Evaluate whether weight is distributed purposefully.
|
|
22
|
+
- Are size differentials at least 1.5× between hierarchy levels?
|
|
23
|
+
- Is bold/heavy type used sparingly so it retains signal value?
|
|
24
|
+
- Do background fill, stroke weight, and iconography add or fight the hierarchy?
|
|
25
|
+
### Emphasis
|
|
26
|
+
Specific elements that demand extra attention. Evaluate whether emphasis is earned and singular.
|
|
27
|
+
- Is there exactly one primary emphasis zone per view?
|
|
28
|
+
- Are colour, contrast, or motion used to emphasise — or overused so they cancel out?
|
|
29
|
+
- Does the highest-emphasis element match stakeholder and user priority?
|
|
30
|
+
## Output Format
|
|
31
|
+
For each dimension — Entry Point, Eye Flow, Weight, Emphasis — provide:
|
|
32
|
+
1. **Observation** — what you see (neutral, factual)
|
|
33
|
+
2. **Problem** — what is broken and why it matters
|
|
34
|
+
3. **Fix** — a specific, actionable change
|
|
35
|
+
Rate each dimension: `pass` / `minor issue` / `major issue`.
|
|
36
|
+
## Common Failure Patterns
|
|
37
|
+
- Multiple competing primaries — nothing reads as most important
|
|
38
|
+
- Hierarchy flattening — too similar in size, weight, or colour across levels
|
|
39
|
+
- False emphasis — decorative elements outweigh functional ones
|
|
40
|
+
- Buried CTA — the action is visually quieter than surrounding content
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Evals
|
|
2
|
+
|
|
3
|
+
Three inputs a session can be handed where this skill could misfire, and what a
|
|
4
|
+
good answer has to contain. Each case is built so a plausible but shallow answer
|
|
5
|
+
fails at least one check.
|
|
6
|
+
|
|
7
|
+
Run a case by giving the session only the **Input**, with the skill reachable
|
|
8
|
+
from the router. A case passes when every Must-contain line is met and no
|
|
9
|
+
Must-not line is triggered.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Case 1 - The trap: a screen-level fix for a capability that does not exist
|
|
14
|
+
|
|
15
|
+
**Input**
|
|
16
|
+
> On our admin "Invite user" form, invited people never get anything - they just
|
|
17
|
+
> show up as pending forever. Make the form better so admins understand what
|
|
18
|
+
> happens.
|
|
19
|
+
|
|
20
|
+
**Must contain**
|
|
21
|
+
- [ ] Fills the capability matrix for invite, including what the recipient actually receives
|
|
22
|
+
- [ ] Cites the `path:line` (or the search) showing there is no delivery path for the invite
|
|
23
|
+
- [ ] Emits a capability-change proposal with a rejectable artifact (a contract or schema diff, a typed flag with an expiry, or an ADR with a status)
|
|
24
|
+
- [ ] Gives every finding a Prevent line
|
|
25
|
+
|
|
26
|
+
**Must not**
|
|
27
|
+
- Recommend only form copy, a tooltip or a "pending" badge as the fix
|
|
28
|
+
- Claim the delivery path is absent without naming the search that proves it
|
|
29
|
+
|
|
30
|
+
**Why this case** - the skill's "The end of the action" row says an action
|
|
31
|
+
with no delivery path "succeeded in the database and failed the user". Its
|
|
32
|
+
proposal rule says "if the fix list for a finding names no layer that already
|
|
33
|
+
exists, the proposal is required."
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Case 2 - The trap: auditing only the form fields
|
|
38
|
+
|
|
39
|
+
**Input**
|
|
40
|
+
> Audit the Orders area of our back office - it is a list page with filters and
|
|
41
|
+
> a detail view, plus an edit form. What is missing?
|
|
42
|
+
|
|
43
|
+
**Must contain**
|
|
44
|
+
- [ ] Audits the orders table, the filters and the detail view to the same depth as the edit form
|
|
45
|
+
- [ ] Checks data-view rules such as real headers, `aria-sort`, a visible active filter state, and a "not provided" value in the detail view
|
|
46
|
+
- [ ] Includes pass rows where layers agree, and marks unchecked cells `[NOT CHECKED: reason]`
|
|
47
|
+
- [ ] States coverage per matrix and how many passes ran, from which entry points
|
|
48
|
+
|
|
49
|
+
**Must not**
|
|
50
|
+
- Limit the audit to form inputs and validation messages
|
|
51
|
+
- Present a list of defects with no pass rows and no coverage counts
|
|
52
|
+
|
|
53
|
+
**Why this case** - "The unit" says "Nothing here is restricted to form fields:
|
|
54
|
+
a table is audited to the same depth as an input", and "Data views come first,
|
|
55
|
+
not last".
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Case 3 - The trap: a clean axe run taken as covering the hand-checks
|
|
60
|
+
|
|
61
|
+
**Input**
|
|
62
|
+
> We ran axe on the checkout wizard and it reported zero violations. Can you
|
|
63
|
+
> confirm the wizard's errors, status messages and focus are fine?
|
|
64
|
+
|
|
65
|
+
**Must contain**
|
|
66
|
+
- [ ] States that axe has no rule for SC 3.3.1, 3.3.3, 4.1.3, 2.4.7 or 1.4.10, and that `target-size` is off by default
|
|
67
|
+
- [ ] Hand-checks error text, status announcements, visible focus and reflow at 320 px, or marks each as not checked
|
|
68
|
+
- [ ] Fills the flow matrix, including whether each step's precondition is enforced on the server
|
|
69
|
+
|
|
70
|
+
**Must not**
|
|
71
|
+
- Confirm the wizard as fine on the strength of the axe run
|
|
72
|
+
- Treat a client-only step check as enforced
|
|
73
|
+
|
|
74
|
+
**Why this case** - "What cannot be checked mechanically" lists exactly these
|
|
75
|
+
gaps as "hand-checks, never assumptions". Matrix 3 says "a check that lives
|
|
76
|
+
only in the client is not enforced".
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## What these do not prove
|
|
81
|
+
|
|
82
|
+
These are trap cases for a human or judge rater, not a behavioural measurement.
|
|
83
|
+
`skills/research` owns the standard a claim about behaviour has to meet.
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: feature-audit
|
|
3
|
+
description: >
|
|
4
|
+
Audit one feature across every layer it is spread over - the surfaces a person
|
|
5
|
+
uses (a form control, a list or table, a detail view, a filter, a picker, a step
|
|
6
|
+
flow, a notification), the route that serves it, the authorization that gates
|
|
7
|
+
it, the service that validates it, and the data that stores it - and produce the
|
|
8
|
+
matrices that turn a disagreement between those layers into a finding. Use when
|
|
9
|
+
the task is about one existing feature rather than the whole product: an admin
|
|
10
|
+
panel, a CRUD screen, a form, a wizard or step flow, a search or picker control,
|
|
11
|
+
a data table, a bulk action, a permission surface, or a "why does this not work
|
|
12
|
+
/ what is missing here / make this better" ask, and whenever a UI improvement
|
|
13
|
+
needs a capability the system does not have. The unit of analysis is the
|
|
14
|
+
feature, not the screen: a screen-level review cannot see a capability no
|
|
15
|
+
surface reaches, a contract field no view renders, or a step whose precondition
|
|
16
|
+
nothing enforces. Not for the whole product - use `product-analysis`.
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# feature-audit
|
|
20
|
+
|
|
21
|
+
A screen review judges what is on the screen. Most of what goes wrong in a real
|
|
22
|
+
feature is not on the screen: it is a disagreement between two layers, or a
|
|
23
|
+
capability that exists on one side only. This skill names the matrices that make
|
|
24
|
+
those visible, so the audit reports them instead of taste.
|
|
25
|
+
|
|
26
|
+
It does not replace `product-analysis` (value, competition, triage) or
|
|
27
|
+
`analyze-app` (reading the running app). It is the layer-coherence pass those two
|
|
28
|
+
assume: run it on the one feature in scope and feed its findings into their axes.
|
|
29
|
+
|
|
30
|
+
## The unit
|
|
31
|
+
|
|
32
|
+
Pick **one feature**: one entity (a person, an order, a record) plus every action
|
|
33
|
+
a user can take on it, plus every screen and endpoint that carries those actions.
|
|
34
|
+
Write the boundary down: the entity, the actions, the screens, the endpoints, the
|
|
35
|
+
files. A feature that cannot be bounded this way is two features.
|
|
36
|
+
|
|
37
|
+
The surfaces in scope are **every interface element and every data view** - a form
|
|
38
|
+
control, a list or table, a detail view, a filter or facet, a picker, a step
|
|
39
|
+
indicator, a notification, a bulk action, an empty or error surface. Nothing here
|
|
40
|
+
is restricted to form fields: a table is audited to the same depth as an input,
|
|
41
|
+
and a data view's states are checked the same way a control's states are.
|
|
42
|
+
|
|
43
|
+
Everything below is a table. A table row is a claim about a layer, and a claim
|
|
44
|
+
carries a citation: `path:line` for code, the tool call and the state read for a
|
|
45
|
+
running app, URL and date for an external standard. **An absence needs the search
|
|
46
|
+
that proves it**: "no caller exists" must name the query and the paths it covered,
|
|
47
|
+
or it is a question, not a finding. A cell you could not check is marked
|
|
48
|
+
`[NOT CHECKED: reason]` and stays in the table - an omitted cell reads as a
|
|
49
|
+
checked one.
|
|
50
|
+
|
|
51
|
+
## Matrix 1 - capability
|
|
52
|
+
|
|
53
|
+
Rows are the entity's actions. Columns are the layers.
|
|
54
|
+
|
|
55
|
+
| Action | Surface (what a person can do) | Route | Authorization | Service / validation | Persistence |
|
|
56
|
+
|---|---|---|---|---|---|
|
|
57
|
+
|
|
58
|
+
Each cell: `yes` + citation, `no` + the search that shows it, or `n/a` + why. Then
|
|
59
|
+
read the disagreements:
|
|
60
|
+
|
|
61
|
+
- **Surface yes, a layer no**: the UI offers an action nothing backs - a dead
|
|
62
|
+
control, or an action enforced only in the browser.
|
|
63
|
+
- **A layer yes, surface no**: a capability the server has and no user can reach
|
|
64
|
+
(a dead endpoint, a missing affordance, a detail endpoint with no detail view, a
|
|
65
|
+
branch no account can enter).
|
|
66
|
+
- **Route yes, authorization no**: a path with no policy on it.
|
|
67
|
+
- **Two routes for one action**: which one is dead, and which carries the audit
|
|
68
|
+
trail the product claims.
|
|
69
|
+
- **An offer the system forbids**: a control offering a value the same codebase
|
|
70
|
+
refuses - a role select whose only option the service rejects is a dead feature,
|
|
71
|
+
not a validation nit.
|
|
72
|
+
- **The end of the action**: for every create/invite/assign, what the recipient
|
|
73
|
+
actually receives (a credential, a mail, a device push). An action whose output
|
|
74
|
+
has no delivery path succeeded in the database and failed the user.
|
|
75
|
+
- **The layers agree**: a pass row. A matrix that only lists defects cannot be
|
|
76
|
+
told apart from a complaint list.
|
|
77
|
+
|
|
78
|
+
Read the sibling surfaces while filling this in: the repository's own convention
|
|
79
|
+
for the same kind of thing - how its other list pages paginate, how its other
|
|
80
|
+
mutations authorize, which primitive it uses for a picker - is the strongest
|
|
81
|
+
available standard, and a deviation with both sides cited is a finding.
|
|
82
|
+
|
|
83
|
+
## Matrix 2 - field contract
|
|
84
|
+
|
|
85
|
+
Rows are fields; columns are the layers a field travels through.
|
|
86
|
+
|
|
87
|
+
| Field | Column / type | Read by the API | Written by the API | Rendered (list / detail / form) | Validated | Label or enum source | Locale / format |
|
|
88
|
+
|---|---|---|---|---|---|---|---|
|
|
89
|
+
|
|
90
|
+
Findings live in the gaps: a field the contract carries and no surface shows; a
|
|
91
|
+
field a view renders and no layer stores; one enum labelled from two sources; two
|
|
92
|
+
different fields printing the same word in one row; requiredness one layer
|
|
93
|
+
enforces and another does not; free text standing in for a value that is really a
|
|
94
|
+
reference to another record; a format the server localizes and the client
|
|
95
|
+
re-formats.
|
|
96
|
+
|
|
97
|
+
## Matrix 3 - flow and step contract
|
|
98
|
+
|
|
99
|
+
For every multi-step flow (a wizard, a staged import, a multi-part create):
|
|
100
|
+
|
|
101
|
+
| Step | Precondition (the state it requires) | What it validates | What it writes | How a skip is prevented | Resume / persistence | Back-navigation retention | Where an error lands |
|
|
102
|
+
|---|---|---|---|---|---|---|---|
|
|
103
|
+
|
|
104
|
+
Finding classes, in the order they hurt: a step reachable without its precondition
|
|
105
|
+
(by URL, by stored state, by a stale tab) - and the URL that names a step the page
|
|
106
|
+
does not render; no persistence, so a reload loses the work; back-navigation that
|
|
107
|
+
keeps what it should discard or discards what it should keep; an error mapped to
|
|
108
|
+
the wrong step, or to the whole flow instead of the field. Say which side enforces
|
|
109
|
+
each precondition: a check that lives only in the client is not enforced.
|
|
110
|
+
|
|
111
|
+
## Matrix 4 - interaction dependency
|
|
112
|
+
|
|
113
|
+
For every control whose change alters what another control may hold (a search that
|
|
114
|
+
repopulates a picker, a selector that narrows a dependent list, a mode that
|
|
115
|
+
invalidates fields):
|
|
116
|
+
|
|
117
|
+
| Trigger | Dependents | Required action on change | Who owns the state | What is announced |
|
|
118
|
+
|---|---|---|---|---|
|
|
119
|
+
|
|
120
|
+
`Required action` is one of *reset*, *recompute*, *revalidate*, *keep*. The
|
|
121
|
+
findings, each decidable:
|
|
122
|
+
|
|
123
|
+
- a dependent value left stale after the set of valid values changed;
|
|
124
|
+
- a value the user chose silently discarded (nothing announces it);
|
|
125
|
+
- **a control still showing a state the view no longer has** - the filter select
|
|
126
|
+
that reads "Pasif" after the list was cleared, because the navigation did not
|
|
127
|
+
reset it;
|
|
128
|
+
- a change to a region assistive technology is not watching, announced nowhere;
|
|
129
|
+
- no cascade where the contract requires one - the server refuses a combination
|
|
130
|
+
the form still offers.
|
|
131
|
+
|
|
132
|
+
## Matrix 5 - surface pattern: controls, data views, flows, notifications
|
|
133
|
+
|
|
134
|
+
Per surface, the decidable rule. Sources are listed at the end; `APG x` is the
|
|
135
|
+
WAI-ARIA Authoring Practices pattern, `SC n.n.n` a WCAG 2.2 success criterion.
|
|
136
|
+
**Data views come first, not last** - a list or table is where an operator spends
|
|
137
|
+
the day, and it answers a different question than a form does.
|
|
138
|
+
|
|
139
|
+
### Data views
|
|
140
|
+
|
|
141
|
+
| Rule | What a violation looks like |
|
|
142
|
+
|---|---|
|
|
143
|
+
| SC 1.3.1: table headers are real headers (`th`/`scope` or `columnheader`) and the table is labelled | a div grid standing in for a table; bold cells as headers; no caption or accessible name |
|
|
144
|
+
| `aria-sort` on the sorted column, and activating a sorted header reverses it | no sort indication; a sort that cannot be reversed; a colour-only indicator |
|
|
145
|
+
| Cells that are editable or contain widgets make it a **grid** (one tab stop, arrow-key cell navigation, Enter/F2 to edit), not a table of tab stops | 40 per-row controls each in the tab order |
|
|
146
|
+
| Large or lazily loaded data sets `aria-rowcount`/`aria-colcount`, and returning from a detail view restores the position | a virtualized table announcing "row 3 of 3"; Back landing at the top |
|
|
147
|
+
| SC 1.4.10: the page scrolls in one direction at 320 CSS px, with the data table inside its own scroll container | a page-level horizontal scrollbar; the table meeting the two-dimensional exception while the surrounding text fails with it |
|
|
148
|
+
| Pagination marks the current page (`aria-current="page"`) in a labelled nav, and a one-page pager is hidden | unlabelled page numbers; a pager for a single page; an endless feed with no reachable footer |
|
|
149
|
+
| Content: captions and headings describe the data, headings are short nouns, the first column is a human-readable identifier, headers stay visible while scrolling | the first column showing `8f3c-…`, nothing telling the operator what the row *is* |
|
|
150
|
+
| Filters are discoverable and their active state is visible in the results view | a filtered list indistinguishable from an unfiltered one; a filter state that survives a "clear" |
|
|
151
|
+
| Detail view: key/value pairs (`dl`), every field showing a value or an explicit "not provided" | stacked headings; a field silently omitted |
|
|
152
|
+
| A scroll region says it scrolls (affordance, or no clipping at the widths measured) | the last column cut mid-word with no fade, no scrollbar and no hint that content exists |
|
|
153
|
+
| Long text has a strategy: truncation with a way to see the whole value, or wrapping | a 74-character address stretching the table to 2029 px inside a 924 px region |
|
|
154
|
+
|
|
155
|
+
### Controls
|
|
156
|
+
|
|
157
|
+
| Rule | What a violation looks like |
|
|
158
|
+
|---|---|
|
|
159
|
+
| `APG combobox`: `role=combobox`, `aria-expanded` tracking the popup, `aria-controls`, `aria-haspopup` matching the popup role, `aria-autocomplete` matching real behaviour | a styled input with a plain `div` popup; `aria-expanded` always true; results in a separate `<select>` |
|
|
160
|
+
| `APG combobox` keyboard: Down opens and enters the popup, Escape closes and returns focus, Enter accepts, the popup stays out of the Tab order, focus stays on the combobox with `aria-activedescendant` naming the option | Tab walking every suggestion; Escape doing nothing; DOM focus leaving the input |
|
|
161
|
+
| `APG listbox`: options are `role=option` owned by a listbox, selection via `aria-selected` **or** `aria-checked` (never both), multi-select `aria-multiselectable`, single choice as radios, the whole item shows selection | clickable `div` rows with no roles; only the checkbox highlight changing |
|
|
162
|
+
| A row carrying its own controls is a grid/table, not a listbox | options containing links, unreachable to a screen-reader user |
|
|
163
|
+
| Visible persistent label (never a placeholder as label), instructions where the format is not customary, a counter where a length limit exists | placeholder-only fields; a date field with no format hint |
|
|
164
|
+
| SC 1.3.5, scoped: an `autocomplete` token on fields collecting **the user's own** information (technique H98), and `off` or absent on search, filter and record fields that are not | a self-data field with no token, or a search box claiming `autocomplete="name"` |
|
|
165
|
+
| One required/optional convention across the product (mark optional, or asterisk every required field and explain it) | mixed conventions; an unexplained asterisk |
|
|
166
|
+
| `APG disclosure`: a show/hide control is `role=button` with `aria-expanded` | a styled link toggling content with no expanded state |
|
|
167
|
+
| `APG tabs`: `tablist`/`tab`/`tabpanel`, `aria-selected` only on the active tab, `aria-controls`/`aria-labelledby`, Left/Right and Home/End | clickable divs; `aria-selected` on every tab; Tab moving between tabs |
|
|
168
|
+
| A conditional reveal reveals a *question*, not help text, and announces that it appeared | a revealed question with no announcement (a known SC 4.1.2 failure) |
|
|
169
|
+
| Pickers: text entry alongside the calendar, no calendar for distant dates, a combobox where free text plus a known list is needed | calendar-only date of birth; a free-text country field |
|
|
170
|
+
| SC 2.5.8 target size: 24x24 CSS px minimum, or undersized with a 24 px clear circle; the design system's own touch floor where higher | 16 px icon buttons packed in a toolbar row |
|
|
171
|
+
| SC 2.4.7 focus visible, or SC 1.4.11 non-text contrast for the indicator: reachable by keyboard, visible, never time-limited | `outline: none` with a faint colour change |
|
|
172
|
+
| SC 1.4.3 contrast 4.5:1 (3:1 large) and no state signalled by colour alone | grey placeholder at 3.2:1; a red-only required or error marker |
|
|
173
|
+
|
|
174
|
+
### Validation and errors
|
|
175
|
+
|
|
176
|
+
| Rule | What a violation looks like |
|
|
177
|
+
|---|---|
|
|
178
|
+
| Validation on submit, not on blur; failing values kept; server-side validation present; native validation suppressed (`novalidate`) | errors appearing as the user tabs away; the field cleared; client-only validation |
|
|
179
|
+
| SC 3.3.1/3.3.3: the item in error is identified and the correction described in text | a red border only; "Invalid input"; the form re-displayed with no message |
|
|
180
|
+
| Association: `aria-describedby` to the message, the same wording in the summary and beside the field, and a summary entry that moves focus to its field | inline wording differing from the summary; focus staying at the top |
|
|
181
|
+
| An error summary at the top of the form naming what went wrong and linking each item to its field | errors existing only beside fields the user cannot see |
|
|
182
|
+
|
|
183
|
+
### Flows
|
|
184
|
+
|
|
185
|
+
| Rule | What a violation looks like |
|
|
186
|
+
|---|---|
|
|
187
|
+
| One question per page (or one group under a statement heading), a unique heading per step, a back link and a Continue button | four unrelated questions on one page; the same heading on every step |
|
|
188
|
+
| Check-your-answers: pre-populated on return, a Change link per section whose hidden text names what it changes, a submit that names its action | blank fields on return; a generic "Submit" |
|
|
189
|
+
| Task list: each task's status in text, the link's description reaching hint and status | status as a coloured dot only |
|
|
190
|
+
| SC 3.3.7 redundant entry: already-given information is auto-populated or offered, not asked again | the same value asked in two steps of one flow |
|
|
191
|
+
| SC 3.3.4: a submission that deletes data, changes stored data or creates a commitment is reversible, checked, or confirmed | delete with no undo, no review, no confirmation |
|
|
192
|
+
| Destructive confirmation names what will be lost (the value or record at stake), keeps its actions inside the panel, and is reserved for the irreversible | "Are you sure?" with no object named; the pattern used for ordinary branch points |
|
|
193
|
+
| `APG dialog`: `aria-modal` only when outside content is inert for every user and visually obscured, focus moves in on open and stays, focus returns to the invoker, an `alertdialog` focuses the least destructive action | `aria-modal` on a panel you can tab out of; focus landing on "Delete"; no dimming between two stacked layers |
|
|
194
|
+
|
|
195
|
+
### Notifications
|
|
196
|
+
|
|
197
|
+
| Rule | What a violation looks like |
|
|
198
|
+
|---|---|
|
|
199
|
+
| SC 4.1.3: a change the page makes without moving focus is programmatically determinable - the result count after a filter, "saved", "3 items" | results updating silently; the count only visually near the table |
|
|
200
|
+
| The whole status string is the announced unit, and the end of a wait is announced | the screen reader hearing only "three"; a spinner vanishing with no "loaded" |
|
|
201
|
+
| Changes that are not status messages (a validation error inside a focused dialog, a disclosure opening) stay out of live regions | every field announcing as it validates |
|
|
202
|
+
| A notification banner is `role=region` with a label (or `role=alert` with focus when reporting success), sits before the h1, at most one per page, never stands in for validation errors | a banner above the header; two banners; a banner replacing an error summary |
|
|
203
|
+
|
|
204
|
+
## The capability-change proposal
|
|
205
|
+
|
|
206
|
+
A finding whose fix names a layer that does not exist yet is not a UI finding, and
|
|
207
|
+
it may not be reported as one. Emit a proposal, and give every heading its evidence
|
|
208
|
+
class and its falsifier:
|
|
209
|
+
|
|
210
|
+
| Heading | What goes in it | Falsified by |
|
|
211
|
+
|---|---|---|
|
|
212
|
+
| Capability | the capability the surface needs, one sentence, no UI nouns | a cited code path that already delivers it |
|
|
213
|
+
| Absence proof | the `path:line` where the system cannot express it, and the input that fails | a cited path that handles that input |
|
|
214
|
+
| Contract delta | the machine-checkable artifact and its diff: the OpenAPI/SDL/proto change, the permission rule, the schema migration | running the compatibility checker and getting green with no diff |
|
|
215
|
+
| Migration | expand, migrate, contract, with the backfill rule and a dated contract step | a contract phase with no date |
|
|
216
|
+
| Rollout | flag name, type and expected lifetime, initial exposure, kill-switch owner, abort threshold and its window | an unmeasurable threshold, or a flag with no lifetime |
|
|
217
|
+
| Verification | the check that fails before and passes after, named by file or command | a check that also passes on the pre-change commit |
|
|
218
|
+
| Reversibility | what the new path writes, the exact restore step, or the plain sentence "one-way door, approval required" | data written with no restore step and no label |
|
|
219
|
+
| Decision | the ADR under `.tezgah/decisions/` (`~/.config/tezgah/bin/tezgah-decisions`) - context, decision, status, consequences - and what it supersedes | an ADR without a status, or an ADR kept nowhere a reader can open |
|
|
220
|
+
| Appetite | the time box, what is out of bounds, and what happens when it ends | no box, or an implicit extension |
|
|
221
|
+
|
|
222
|
+
**The load-bearing rule: the proposal must carry an artifact something other than
|
|
223
|
+
its author can reject** - a spec, permission or schema diff a compatibility checker
|
|
224
|
+
can fail on (`buf breaking`, a contract test), a flag with a type and an expiry
|
|
225
|
+
(OpenFeature), an ADR with a status. Prose cannot be rejected by a tool, so a
|
|
226
|
+
proposal without one of those is not yet a proposal.
|
|
227
|
+
|
|
228
|
+
The rule that makes this a finding and not a suggestion: **if the fix list for a
|
|
229
|
+
finding names no layer that already exists, the proposal is required.** The audit
|
|
230
|
+
does not ship a screen-level recommendation for a capability that is absent.
|
|
231
|
+
|
|
232
|
+
A reviewer checks five absences: a capability claimed with no `code` finding behind
|
|
233
|
+
it; a proposal with no rejectable artifact; a schema-touching step with no migration
|
|
234
|
+
phases; a flag with no lifetime or owner; a contract change with no ADR and no
|
|
235
|
+
pre/post check pair.
|
|
236
|
+
|
|
237
|
+
## Every finding carries a Prevent line
|
|
238
|
+
|
|
239
|
+
A finding that only describes the defect will be met again next quarter. For each
|
|
240
|
+
one, name the cheapest thing that stops the family from returning - a lint rule, a
|
|
241
|
+
component-state checklist entry, an e2e assertion, a contract test, a schema
|
|
242
|
+
constraint - or say plainly that no mechanical prevention exists and this one stays
|
|
243
|
+
a review item. The assertion has to be the one that would have failed: an e2e check
|
|
244
|
+
of *document* overflow passes while the last column is clipped inside its own
|
|
245
|
+
scroll container.
|
|
246
|
+
|
|
247
|
+
## Coverage, not just findings
|
|
248
|
+
|
|
249
|
+
The artifact lives at `<repo>/.tezgah/analysis/<feature>/` (never a root
|
|
250
|
+
`analysis/`: the project ignores `.tezgah/` and the gate refuses the root one).
|
|
251
|
+
It states, per matrix, how many rows were checked and how many could not
|
|
252
|
+
be (no credential, no running app, no data in that state), and what would change
|
|
253
|
+
the conclusion. A silently missing matrix section reads as a covered one - the same
|
|
254
|
+
defect as a screenshot saved and never read.
|
|
255
|
+
|
|
256
|
+
## Discipline
|
|
257
|
+
|
|
258
|
+
- **Three passes minimum, from different entry points** (a first-time user, the
|
|
259
|
+
operator who does this daily, an API client with no UI). One rater is never a
|
|
260
|
+
measurement; report how many passes ran.
|
|
261
|
+
- **Read the running app where it runs.** Source reading proves a layer exists; it
|
|
262
|
+
does not prove the surface behaves. Say which findings came from a reading and
|
|
263
|
+
which from an exercised action - and know the limit: a surface that renders on
|
|
264
|
+
the server hides its capability calls from the browser's request log, so a
|
|
265
|
+
capability row needs the server's own log, a proxy, or the code.
|
|
266
|
+
- **A screenshot is read, not saved.** Say which widths, which colour scheme, and
|
|
267
|
+
what the tree could not answer.
|
|
268
|
+
- **Pass rows are part of the result**: agreement between layers is the control
|
|
269
|
+
that shows the matrices were filled honestly.
|
|
270
|
+
- **No finding without a named standard or a cross-layer disagreement.** "This
|
|
271
|
+
feels cluttered" is a question. A violated guideline is not automatically a
|
|
272
|
+
problem: name the context and the alternative.
|
|
273
|
+
- **Nothing here is a UI opinion**: the deliverable is the matrices, the
|
|
274
|
+
disagreements, and the proposals, most severe first.
|
|
275
|
+
|
|
276
|
+
## What cannot be checked mechanically
|
|
277
|
+
|
|
278
|
+
Run the automated sweeps where they exist (`analyze-app` wires axe-core and the
|
|
279
|
+
page measurements), then hand-check what they cannot see. axe-core's own figure is
|
|
280
|
+
about 57% of WCAG issues, and its rule set has **no rule** for SC 1.4.10, 2.4.7,
|
|
281
|
+
3.3.1, 3.3.3 or 4.1.3; the `target-size` rule exists but is **disabled by
|
|
282
|
+
default**. So these eight are hand-checks, never assumptions:
|
|
283
|
+
|
|
284
|
+
1. whether the error text identifies the error and suggests the fix (3.3.1/3.3.3);
|
|
285
|
+
2. whether a destructive confirmation names what is lost;
|
|
286
|
+
3. whether a status message carries enough context, and whether the end of a wait
|
|
287
|
+
is announced (4.1.3 - no rule, and a tool cannot hear the announcement);
|
|
288
|
+
4. whether the focus indicator is actually visible on the real background (2.4.7);
|
|
289
|
+
5. whether the page really reflows at 320 px with the table exception contained
|
|
290
|
+
(1.4.10 - measure, do not assume);
|
|
291
|
+
6. whether an autocomplete token fits the field's semantic purpose, and whether the
|
|
292
|
+
field collects the user's own information at all;
|
|
293
|
+
7. whether an `aria-modal` dialog meets both preconditions, and where initial focus
|
|
294
|
+
lands;
|
|
295
|
+
8. whether a conditionally revealed question is announced when it appears.
|
|
296
|
+
|
|
297
|
+
## What a run of this produced on a real feature
|
|
298
|
+
|
|
299
|
+
Measured on a Next.js admin users area (15 rows of defects, 10 classes): the
|
|
300
|
+
screen-level method reached 4 of the 10 classes across three independent raters,
|
|
301
|
+
while the layer matrices named the rest - the dead endpoint no surface calls, the
|
|
302
|
+
contract field no view renders, the in-memory list filter under a pagination
|
|
303
|
+
envelope nobody computes, the silent cascade reset, the wizard URL naming a step
|
|
304
|
+
the page does not render, and the confirmation that hides what it destroys. Two
|
|
305
|
+
classes were found only by running the app (a table 1140 px wide inside a 242 px
|
|
306
|
+
container at 320, and a search that misses Turkish casefolded names), which is why
|
|
307
|
+
the running-app half is not optional.
|
|
308
|
+
|
|
309
|
+
## Sources
|
|
310
|
+
|
|
311
|
+
Read at source 2026-09-20: WAI-ARIA APG patterns - combobox, listbox, dialog modal,
|
|
312
|
+
alertdialog, disclosure, tabs, table, grid (`https://www.w3.org/WAI/ARIA/apg/patterns/`);
|
|
313
|
+
WCAG 2.2 Understanding pages - 1.3.1, 1.3.5, 1.4.3, 1.4.10, 1.4.11, 2.4.7, 2.5.8,
|
|
314
|
+
3.3.1, 3.3.3, 3.3.4, 3.3.7, 4.1.3 (`https://www.w3.org/WAI/WCAG22/Understanding/`);
|
|
315
|
+
GOV.UK Design System - question pages, check answers, error message, error summary,
|
|
316
|
+
task list, table, summary list, pagination, notification banner, interruption pages
|
|
317
|
+
(`https://design-system.service.gov.uk/`; `one-thing-per-page` now resolves to
|
|
318
|
+
`patterns/question-pages/`). Grey, quoted for concrete rules only: Material 3
|
|
319
|
+
(`https://m3.material.io/`), Apple HIG (`https://developer.apple.com/design/human-interface-guidelines/`),
|
|
320
|
+
NN/g data tables and infinite scrolling. axe-core rule tags and the 57% figure:
|
|
321
|
+
`https://github.com/dequelabs/axe-core`.
|
|
322
|
+
|
|
323
|
+
Where the depth lives: `product-analysis` (the five axes this feeds), `analyze-app`
|
|
324
|
+
(how a running surface is read), `research` (where the artifact lives),
|
|
325
|
+
`intended-vs-implemented` (documentation against code - this skill compares layer
|
|
326
|
+
against layer).
|