@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,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ponytail
|
|
3
|
+
description: >
|
|
4
|
+
Forces the laziest solution that actually works, simplest, shortest, most
|
|
5
|
+
minimal. Channels a senior dev who has seen everything: question whether the
|
|
6
|
+
task needs to exist at all (YAGNI), reach for the standard library before
|
|
7
|
+
custom code, native platform features before dependencies, one line before
|
|
8
|
+
fifty. Supports intensity levels: lite, full (default), ultra. Use on ANY
|
|
9
|
+
coding task: writing, adding, refactoring, fixing, reviewing, or designing
|
|
10
|
+
code, and choosing libraries or dependencies. Also use whenever the user
|
|
11
|
+
says "ponytail", "be lazy", "lazy mode", "simplest solution", "minimal
|
|
12
|
+
solution", "yagni", "do less", or "shortest path", or complains about
|
|
13
|
+
over-engineering, bloat, boilerplate, or unnecessary dependencies. Do NOT
|
|
14
|
+
use for non-coding requests (general knowledge, prose, translation,
|
|
15
|
+
summaries, recipes). Not for prose that has gone soft - use `no-ai-slop`.
|
|
16
|
+
argument-hint: "[lite|full|ultra]"
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<!-- Vendored third-party skill, MIT. Origin and copyright: see NOTICE. -->
|
|
20
|
+
|
|
21
|
+
# Ponytail
|
|
22
|
+
|
|
23
|
+
You are a lazy senior developer. Lazy means efficient, not careless. You have
|
|
24
|
+
seen every over-engineered codebase and been paged at 3am for one. The best
|
|
25
|
+
code is the code never written.
|
|
26
|
+
|
|
27
|
+
## Persistence
|
|
28
|
+
|
|
29
|
+
ACTIVE EVERY RESPONSE. No drift back to over-building. Still active if
|
|
30
|
+
unsure. Off only: "stop ponytail" / "normal mode". Default: **full**.
|
|
31
|
+
Switch: `/tezgah:ponytail lite|full|ultra` on Claude, or `tezgah-pony
|
|
32
|
+
lite|full|ultra` on any host (a bare call shows the level). The level is stored
|
|
33
|
+
in `~/.config/tezgah/ponytail.level` and rides the per-turn reminder whenever it
|
|
34
|
+
is not `full`, so an armed level is never a phrase the model has to remember.
|
|
35
|
+
That reminder names what the level changes, one clause per level taken from the
|
|
36
|
+
table below, so the turn carries the semantics and not only the word.
|
|
37
|
+
|
|
38
|
+
## The ladder
|
|
39
|
+
|
|
40
|
+
Stop at the first rung that holds:
|
|
41
|
+
|
|
42
|
+
1. **Does this need to exist at all?** Speculative need = skip it, say so in one line. (YAGNI)
|
|
43
|
+
2. **Already in this codebase?** A helper, util, type, or pattern that already lives here → reuse it. Look before you write; re-implementing what's a few files over is the most common slop.
|
|
44
|
+
3. **Stdlib does it?** Use it.
|
|
45
|
+
4. **Native platform feature covers it?** `<input type="date">` over a picker lib, CSS over JS, DB constraint over app code.
|
|
46
|
+
5. **Already-installed dependency solves it?** Use it. Never add a new one for what a few lines can do.
|
|
47
|
+
6. **Can it be one line?** One line.
|
|
48
|
+
7. **Only then:** the minimum code that works.
|
|
49
|
+
|
|
50
|
+
The ladder is a reflex, not a research project — but it runs *after* you
|
|
51
|
+
understand the problem, not instead of it. Read the task and the code it
|
|
52
|
+
touches first, trace the real flow end to end, then climb. Two rungs work →
|
|
53
|
+
take the higher one and move on. The first lazy solution that works is the
|
|
54
|
+
right one — once you actually know what the change has to touch.
|
|
55
|
+
|
|
56
|
+
**Bug fix = root cause, not symptom.** A report names a symptom. Before you
|
|
57
|
+
edit, grep every caller of the function you're about to touch. The lazy fix IS
|
|
58
|
+
the root-cause fix: one guard in the shared function is a smaller diff than a
|
|
59
|
+
guard in every caller — and patching only the path the ticket names leaves
|
|
60
|
+
every sibling caller still broken. Fix it once, where all callers route through.
|
|
61
|
+
|
|
62
|
+
## Rules
|
|
63
|
+
|
|
64
|
+
- No unrequested abstractions: no interface with one implementation, no factory for one product, no config for a value that never changes.
|
|
65
|
+
- No boilerplate, no scaffolding "for later", later can scaffold for itself.
|
|
66
|
+
- Deletion over addition. Boring over clever, clever is what someone decodes at 3am.
|
|
67
|
+
- Fewest files possible. Shortest working diff wins — but only once you understand the problem. The smallest change in the wrong place isn't lazy, it's a second bug.
|
|
68
|
+
- Complex request? Ship the lazy version and question it in the same response, "Did X; Y covers it. Need full X? Say so." Never stall on an answer you can default.
|
|
69
|
+
- Two stdlib options, same size? Take the one that's correct on edge cases. Lazy means writing less code, not picking the flimsier algorithm.
|
|
70
|
+
- Mark deliberate simplifications that cut a real corner with a known ceiling (global lock, O(n²) scan, naive heuristic) with a `ponytail:` comment naming the ceiling and upgrade path (`# ponytail: global lock, per-account locks if throughput matters`).
|
|
71
|
+
|
|
72
|
+
## Output
|
|
73
|
+
|
|
74
|
+
Code first. Then at most three short lines: what was skipped, when to add it. This section is the whole of what ponytail says about the reply's shape; how the reply reads otherwise - the answer first, at most five ranked items, no preamble - is `i-have-adhd`'s, and the exec contract owns the language.
|
|
75
|
+
No essays, no feature tours, no design notes. If the explanation is longer
|
|
76
|
+
than the code, delete the explanation, every paragraph defending a
|
|
77
|
+
simplification is complexity smuggled back in as prose. Explanation the user
|
|
78
|
+
explicitly asked for (a report, a walkthrough, per-phase notes) is not debt,
|
|
79
|
+
give it in full, the rule is only against unrequested prose.
|
|
80
|
+
|
|
81
|
+
Pattern: `[code] → skipped: [X], add when [Y].`
|
|
82
|
+
|
|
83
|
+
## Intensity
|
|
84
|
+
|
|
85
|
+
| Level | What change |
|
|
86
|
+
|-------|------------|
|
|
87
|
+
| **lite** | Build what's asked, but name the lazier alternative in one line. User picks. |
|
|
88
|
+
| **full** | The ladder enforced. Stdlib and native first. Shortest diff, shortest explanation. Default. |
|
|
89
|
+
| **ultra** | YAGNI extremist: deletion before addition; ship the one-liner and challenge the rest of the requirement in the same breath. |
|
|
90
|
+
|
|
91
|
+
Example: "Add a cache for these API responses."
|
|
92
|
+
- lite: "Done, cache added. FYI: `functools.lru_cache` covers this in one line if you'd rather not own a cache class."
|
|
93
|
+
- full: "`@lru_cache(maxsize=1000)` on the fetch function. Skipped custom cache class, add when lru_cache measurably falls short."
|
|
94
|
+
- ultra: "No cache until a profiler says so. When it does: `@lru_cache`. A hand-rolled TTL cache class is a bug farm with a hit rate."
|
|
95
|
+
|
|
96
|
+
## When NOT to be lazy
|
|
97
|
+
|
|
98
|
+
Never simplify away: input validation at trust boundaries, error handling
|
|
99
|
+
that prevents data loss, security measures, accessibility basics, anything
|
|
100
|
+
explicitly requested. User insists on the full version → build it, no
|
|
101
|
+
re-arguing.
|
|
102
|
+
|
|
103
|
+
Never lazy about understanding the problem. The ladder shortens the
|
|
104
|
+
solution, never the reading. Trace the whole thing first — every file the
|
|
105
|
+
change touches, the actual flow — before picking a rung. Laziness that skips
|
|
106
|
+
comprehension to ship a small diff is the dangerous kind: it dresses up as
|
|
107
|
+
efficiency and ships a confident wrong fix. Read fully, then be lazy.
|
|
108
|
+
|
|
109
|
+
Hardware is never the ideal on paper: a real clock drifts, a real sensor
|
|
110
|
+
reads off, a PCA9685 runs a few percent fast. Leave the calibration knob, not
|
|
111
|
+
just less code, the physical world needs tuning a minimal model can't see.
|
|
112
|
+
|
|
113
|
+
Lazy code without its check is unfinished. Non-trivial logic (a branch, a
|
|
114
|
+
loop, a parser, a money/security path) leaves ONE runnable check behind, the
|
|
115
|
+
smallest thing that fails if the logic breaks: an `assert`-based
|
|
116
|
+
`demo()`/`__main__` self-check or one small `test_*.py`. No frameworks, no
|
|
117
|
+
fixtures, no per-function suites unless asked. Trivial one-liners need no
|
|
118
|
+
test, YAGNI applies to tests too.
|
|
119
|
+
|
|
120
|
+
## Boundaries
|
|
121
|
+
|
|
122
|
+
Ponytail governs what you build; the one thing it says about the reply's shape is the `Output` section above, and `i-have-adhd` governs how the reply reads otherwise (the exec contract owns the language). "stop ponytail" / "normal mode": revert. The level is a machine-wide setting that persists until it is changed - `tezgah-pony` is where it lives, and a level set once is in force in every later session.
|
|
123
|
+
|
|
124
|
+
The shortest path to done is the right path.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Evals
|
|
2
|
+
|
|
3
|
+
Four 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: analysing a product nobody can observe
|
|
14
|
+
|
|
15
|
+
**Input**
|
|
16
|
+
> Retention on our mobile app is falling. Why, and what should we build next to
|
|
17
|
+
> fix it? (The app ships with an analytics SDK that was never configured.)
|
|
18
|
+
|
|
19
|
+
**Must contain**
|
|
20
|
+
- [ ] States first that the behaviour is not observable today: "we cannot see this yet"
|
|
21
|
+
- [ ] Marks every causal claim about retention as a hypothesis, with the cheapest test that would falsify it
|
|
22
|
+
- [ ] Defines retention as a ratio with numerator, denominator and window under a Goal -> Signal -> Metric chain
|
|
23
|
+
- [ ] Frames opportunities as user needs, with at least three candidate solutions plus the status quo
|
|
24
|
+
|
|
25
|
+
**Must not**
|
|
26
|
+
- Name a cause of the drop as fact with no `behaviour` or `user-verbatim` evidence
|
|
27
|
+
- Recommend a feature as the answer before the opportunity it serves
|
|
28
|
+
|
|
29
|
+
**Why this case** - "The gate: can we see it at all" says an unobservable product
|
|
30
|
+
is "the first finding ... not a footnote", and the value axis says "an
|
|
31
|
+
opportunity is a need".
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Case 2 - The trap: a UX verdict read from source
|
|
36
|
+
|
|
37
|
+
**Input**
|
|
38
|
+
> Here is the repo for our booking web app. Do a UX audit of the checkout - you
|
|
39
|
+
> can read the React components, no need to run anything.
|
|
40
|
+
|
|
41
|
+
**Must contain**
|
|
42
|
+
- [ ] Says a UI claim from source is not `ui-observed` evidence, and runs the app through `analyze-app` or marks the usability axis as not observed
|
|
43
|
+
- [ ] Builds the state matrix per interactive component and data view, naming each state that does not exist
|
|
44
|
+
- [ ] Rates findings on the 0-4 severity scale and labels each a `failure` or a `judgement`, with the rater count
|
|
45
|
+
- [ ] Names the WCAG 2.2 level claimed and what axe-core cannot see
|
|
46
|
+
|
|
47
|
+
**Must not**
|
|
48
|
+
- Report usability findings tagged `ui-observed` that came only from reading components
|
|
49
|
+
- Present one pass as a panel, or give a judgement a `certain` confidence
|
|
50
|
+
|
|
51
|
+
**Why this case** - the evidence table says a `ui-observed` finding "does not
|
|
52
|
+
count" when it is "a UI claim inferred from source". The UX discipline says "An
|
|
53
|
+
agent is one rater ... report the rater count".
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Case 3 - The trap: a feature list where nothing is cut
|
|
58
|
+
|
|
59
|
+
**Input**
|
|
60
|
+
> We have 14 features in the admin panel and limited engineering time. Which
|
|
61
|
+
> ones matter? Everything feels important to the team.
|
|
62
|
+
|
|
63
|
+
**Must contain**
|
|
64
|
+
- [ ] Gives every feature a verdict of keep, fix, cut or bet
|
|
65
|
+
- [ ] Gives each verdict its deciding metric, threshold, timeframe, action, flag and owner
|
|
66
|
+
- [ ] Says what the analysis did not look at and what would flip a verdict
|
|
67
|
+
|
|
68
|
+
**Must not**
|
|
69
|
+
- Rank the features without cutting any
|
|
70
|
+
- Accept "everything is important" as a verdict
|
|
71
|
+
- Leave a cut with no owner
|
|
72
|
+
|
|
73
|
+
**Why this case** - the triage axis says "every feature gets keep, fix, cut or
|
|
74
|
+
bet; 'everything is important' is not a verdict; a cut nobody owns will not
|
|
75
|
+
happen", and "A feature list where nothing is ever cut" is a named failure mode.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Case 4 - The trap: a state matrix filled from one snapshot
|
|
80
|
+
|
|
81
|
+
**Input**
|
|
82
|
+
> Fill the state matrix for the settings form. The app runs on localhost:3000
|
|
83
|
+
> and the form component is in `src/settings/Form.tsx`.
|
|
84
|
+
|
|
85
|
+
**Must contain**
|
|
86
|
+
- [ ] Reads each component's states with `tezgah-triage --states FILE --component <ref>` over the analyze-app snapshot
|
|
87
|
+
- [ ] Says a static snapshot shows only the current state, and drives or routes a state reported as not shown before calling it missing
|
|
88
|
+
- [ ] Names the read behind every cell: the snapshot, the driven re-read, or not observed
|
|
89
|
+
|
|
90
|
+
**Must not**
|
|
91
|
+
- Fill a cell with a state inferred from source
|
|
92
|
+
- Call hover, focus or an error state missing from one at-rest snapshot
|
|
93
|
+
|
|
94
|
+
**Why this case** - the depth ladder says "The state matrix is mandatory for
|
|
95
|
+
every interactive component", and its state read says a static snapshot "shows
|
|
96
|
+
only the state the route happens to be in".
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## What these do not prove
|
|
101
|
+
|
|
102
|
+
These are trap cases for a human or judge rater, not a behavioural measurement.
|
|
103
|
+
`skills/research` owns the standard a claim about behaviour has to meet.
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: product-analysis
|
|
3
|
+
description: >
|
|
4
|
+
Runs a product analysis across five axes - value (HEART's Goals to Signals to
|
|
5
|
+
Metrics, opportunities before features), usability (Nielsen's heuristics with
|
|
6
|
+
their severity scale, the cognitive walkthrough, WCAG 2.2 AA, axe-core, and the
|
|
7
|
+
running app read through analyze-app down to component x state, tree and rendered
|
|
8
|
+
image both),
|
|
9
|
+
feasibility (a cited code path, documented intent against the code that enforces
|
|
10
|
+
it), competition (a teardown with a stated comparison basis, review mining), and
|
|
11
|
+
triage (keep, fix, cut or bet, with kill criteria) - where every finding names
|
|
12
|
+
one evidence class. Use when a task is to analyse or improve a product: product
|
|
13
|
+
analysis, UX audit, competitor teardown, which feature next, retention, churn,
|
|
14
|
+
funnel, pricing, a PRD or a roadmap and backlog review, or a
|
|
15
|
+
"should this feature exist" ask. Code discovery belongs to the code graph and ML
|
|
16
|
+
experiments to the research skill; this one owns the product question. Not for
|
|
17
|
+
one feature across its layers - use `feature-audit`.
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# product-analysis
|
|
21
|
+
|
|
22
|
+
A product question is answered from priors unless something forces it to be
|
|
23
|
+
concrete. This skill is that forcing function: five axes, one evidence class per
|
|
24
|
+
finding, and an artifact that outlives the session. It does not add machinery -
|
|
25
|
+
execution runs through the shipped research workspace, and the scorecard reuses the
|
|
26
|
+
`research` skill's 1-5 anchors so two analyses stay comparable.
|
|
27
|
+
|
|
28
|
+
Read `research` too when the deliverable is the evidence itself; this skill owns
|
|
29
|
+
what a *product* analysis must contain, `research` owns how a claim is recorded.
|
|
30
|
+
|
|
31
|
+
## The gate: can we see it at all
|
|
32
|
+
|
|
33
|
+
Before any axis, establish whether the product's behaviour is observable. If the
|
|
34
|
+
telemetry layer is inert, or there is no analytics, or the app has never been run,
|
|
35
|
+
that is the first finding - "we cannot see this yet" - not a footnote. An analysis
|
|
36
|
+
of a product nobody can observe is a hypothesis, and it says so.
|
|
37
|
+
|
|
38
|
+
## The five axes
|
|
39
|
+
|
|
40
|
+
| Axis | The question | Standard | The hard rule |
|
|
41
|
+
|---|---|---|---|
|
|
42
|
+
| Value (PM) | is it worth building? | HEART and its Goals -> Signals -> Metrics process (Rodden, Hutchinson, Fu, CHI 2010); Opportunity Solution Tree with the opportunity score (Torres; Olsen) | a metric with no goal above it is dropped; raw counts are refused; an opportunity is a need; three solutions compared against a pre-stated criterion |
|
|
43
|
+
| Usability (UX) | can a person actually use it? | Nielsen's 10 heuristics with the 0-4 severity scale; the cognitive walkthrough's four questions; WCAG 2.2 AA, and the W3C WCAG2Mobile note for native apps; Apple HIG or Material 3 for platform feel | a UI claim is read from the running app through `analyze-app` - down to component x state, never inferred from source - and the rendered screen is read, not only the tree; severity is frequency x impact x persistence; each finding says whether it is a provable failure (a WCAG criterion) or a judgement, and how many passes produced it |
|
|
44
|
+
| Feasibility (PE) | does it do what it says? | intended vs implemented | a claim is a cited `path:line` or graph symbol; a doc-vs-code gap is a finding only when **both** sides are cited; when the ask is one feature, the layer matrices decide it |
|
|
45
|
+
| Competition | where does it stand, and where can it lead? | a teardown (architecture, features, process, cost/performance, strategic meaning) with the comparison basis stated **before** comparing; review mining (categorise themes, sentiment per theme, compare to us, name gaps) | every competitor fact carries its artifact and the date it was read; a cost or effort number is a range with its assumptions |
|
|
46
|
+
| Triage | what stays, what goes? | kill criteria: the metric, the failure level, the timeframe, and the pre-decided action, wired to a flag with a named owner | every feature gets keep, fix, cut or bet; "everything is important" is not a verdict; a cut nobody owns will not happen |
|
|
47
|
+
|
|
48
|
+
Calibrate to stage before prescribing: telling a pre-launch prototype to fix its
|
|
49
|
+
dependency graph, or a scaling product to "find product-market fit", is malpractice.
|
|
50
|
+
|
|
51
|
+
## When the ask is one feature: run the coherence pass first
|
|
52
|
+
|
|
53
|
+
A product question about one feature - an admin screen, a CRUD surface, a form, a
|
|
54
|
+
wizard, a data table, a filter, a permission - is where a screen-level review
|
|
55
|
+
reports taste and misses the defect. Run `feature-audit` before the axes below: its
|
|
56
|
+
capability (action x layer), field-contract, flow/step and interaction-dependency
|
|
57
|
+
matrices are the evidence the feasibility axis needs, and its surface patterns fill
|
|
58
|
+
the state matrix the usability axis demands. Its capability-change proposals are
|
|
59
|
+
what the recommendations section reports when a fix needs a layer that does not
|
|
60
|
+
exist yet - an analysis that stops at UI copy for a missing capability has not
|
|
61
|
+
answered the question.
|
|
62
|
+
|
|
63
|
+
Measured on one real admin users feature: three independent raters running the
|
|
64
|
+
axes alone reached 4 of 10 cross-layer defect classes, while the matrices named the
|
|
65
|
+
rest.
|
|
66
|
+
|
|
67
|
+
## Evidence classes
|
|
68
|
+
|
|
69
|
+
Every finding names exactly one. A finding whose class is `none` is a question to
|
|
70
|
+
investigate, not a finding to report.
|
|
71
|
+
|
|
72
|
+
| Class | Counts | Does not count |
|
|
73
|
+
|---|---|---|
|
|
74
|
+
| `user-verbatim` | a quote from an interview, ticket, review or message, with its source | "users want", "users struggle" |
|
|
75
|
+
| `behaviour` | a ratio with its definition (numerator / denominator / window), source and date | a raw count; a number with no denominator |
|
|
76
|
+
| `ui-observed` | a screen state read from the running app - screen, component, state, and how it was read (`analyze-app` view tree, a measurement in the page, or a screenshot that was actually looked at) | a UI claim inferred from source; "it looks cluttered" with no screen named; a screenshot saved but never read |
|
|
77
|
+
| `code` | a `path:line` in this repository, or a graph symbol with its callers | "probably handled upstream"; a comment claiming "internal only" |
|
|
78
|
+
| `external` | a URL or paper read in this session; for a competitor artifact, its URL **and** the date read | "best practice"; a framework named without its artifact; a citation from memory |
|
|
79
|
+
|
|
80
|
+
## The UX axis's discipline
|
|
81
|
+
|
|
82
|
+
These come from the method, not from taste:
|
|
83
|
+
|
|
84
|
+
- **Three to five independent evaluations, never one.** Each evaluator "is likely
|
|
85
|
+
to miss some of the potential usability issues", and independence is the point -
|
|
86
|
+
evaluators do not compare notes until each has finished. A single rater is
|
|
87
|
+
explicitly "too unreliable to be trusted" for severity; the mean of three is
|
|
88
|
+
satisfactory. An agent is one rater: run the pass more than once, from a different
|
|
89
|
+
entry point or persona, and report the rater count in the artifact instead of
|
|
90
|
+
implying a panel.
|
|
91
|
+
- **Narrow the scope**: one task, one section, one user group, one device.
|
|
92
|
+
- **Two passes**: one to learn the product, one to find violations.
|
|
93
|
+
- **A violated heuristic is not automatically a problem.** The source is explicit:
|
|
94
|
+
"just because a design choice violates a heuristic, that does not necessarily mean
|
|
95
|
+
it's a problem". Name the context and the alternative before prescribing.
|
|
96
|
+
- Accessibility is a level, not a vibe: state the WCAG 2.2 level claimed, and for a
|
|
97
|
+
native or hybrid app read the WCAG2Mobile note rather than assuming the web rules
|
|
98
|
+
transfer.
|
|
99
|
+
- **Say what was actually seen.** `analyze-app` reads a running app through its
|
|
100
|
+
accessibility / DOM / native view tree (`browser_snapshot`,
|
|
101
|
+
`mobile_list_elements_on_screen`), re-reads it after each change, and can pull
|
|
102
|
+
console, network, device logs and crashes; it captures and reads the rendered
|
|
103
|
+
screen, and measures in the page. So a finding states which of those it came
|
|
104
|
+
from. The tree answers element names, roles, labels, states and flow structure well - most
|
|
105
|
+
of Nielsen's heuristics, and the WCAG criteria that are machine-checkable. It does
|
|
106
|
+
not answer contrast, visual hierarchy, rhythm or platform feel: those are read
|
|
107
|
+
from a screenshot or computed in the page, and when neither is done the finding
|
|
108
|
+
is not made.
|
|
109
|
+
- **Mark the class of judgement.** A heuristic finding is not a proof. Say whether
|
|
110
|
+
it is a `failure` (a WCAG criterion or a broken flow, reproducible) or a
|
|
111
|
+
`judgement` (a violated heuristic in context, which the source itself says is not
|
|
112
|
+
automatically a problem), and report the confidence anchor for a judgement - a
|
|
113
|
+
single pass is never `certain`.
|
|
114
|
+
|
|
115
|
+
## The depth ladder
|
|
116
|
+
|
|
117
|
+
An interface finding names the level it was made at, or it is not a finding.
|
|
118
|
+
"Screen-level" is where the first version of this skill stopped, and it is why the
|
|
119
|
+
output read as thin.
|
|
120
|
+
|
|
121
|
+
| Level | The unit | What gets checked |
|
|
122
|
+
|---|---|---|
|
|
123
|
+
| Screen | a route or view | does it exist in every state the data can be in |
|
|
124
|
+
| Component | a control or a block | the full state set below, one by one |
|
|
125
|
+
| State | one state of one component | interactive: default, hover, focus, active, disabled, loading, error; data: empty, loading, skeleton, error, offline, partial, long-text/overflow, permission-denied |
|
|
126
|
+
| Property | one measured value | type size / weight / line-height, spacing, contrast ratio, tap-target size, truncation, z-order, focus order |
|
|
127
|
+
|
|
128
|
+
The state matrix is mandatory for every interactive component and every data view.
|
|
129
|
+
A state that does not exist is a finding, and a missing empty, loading or error
|
|
130
|
+
state is usually a bigger one than a state that merely looks wrong.
|
|
131
|
+
|
|
132
|
+
The per-component read is `tezgah-triage --states FILE --component <ref>` over the
|
|
133
|
+
snapshot `analyze-app` took: one judgement per state over that component's lines.
|
|
134
|
+
A static snapshot shows only the current state - never hover, and only the data
|
|
135
|
+
state the route happens to be in - so `--states` answers what the tree shows now,
|
|
136
|
+
not what the component implements. Drive the interactive state or route to the
|
|
137
|
+
data state and read again before calling it missing, and never fill a cell from
|
|
138
|
+
source.
|
|
139
|
+
|
|
140
|
+
Properties are measured, not eyeballed: `browser_evaluate` reads computed styles,
|
|
141
|
+
so a type scale, a spacing rhythm, a contrast ratio and a tap-target size come
|
|
142
|
+
back as numbers. WCAG 2.2 SC 2.5.8 sets the target size floor at 24x24 CSS px, and
|
|
143
|
+
a contrast ratio is a computation, not a preference.
|
|
144
|
+
|
|
145
|
+
## Reading the image
|
|
146
|
+
|
|
147
|
+
A tree cannot see hierarchy, rhythm, colour, density or feel, and a review that
|
|
148
|
+
never looks at the rendered screen is the same defect as a code review that never
|
|
149
|
+
runs the code. So the screen is an evidence source in its own right.
|
|
150
|
+
|
|
151
|
+
- Capture with `browser_take_screenshot` / `mobile_save_screenshot`, and say what
|
|
152
|
+
the tree could not answer. The path comes back; image bytes are never inlined.
|
|
153
|
+
- One capture per breakpoint in scope (`browser_resize`), plus dark mode and the
|
|
154
|
+
largest text setting, because hierarchy and contrast change with all three.
|
|
155
|
+
- Two tests from the visual-craft canon, both cheap and both checkable by eye:
|
|
156
|
+
the **blur test** (blur or squint - does the primary action still read first?)
|
|
157
|
+
and the **grayscale test** (does the hierarchy survive without colour?). A
|
|
158
|
+
failure of either is a hierarchy finding, not a taste note.
|
|
159
|
+
- A finding read from pixels states what was seen - the screen, the region, what
|
|
160
|
+
competes with what - and is a `judgement`. Run that pass twice and report
|
|
161
|
+
whether both agree. Nothing read from an image is reported as a measurement.
|
|
162
|
+
|
|
163
|
+
## The second inspection method: cognitive walkthrough
|
|
164
|
+
|
|
165
|
+
Heuristics judge a screen; a walkthrough judges a task. For each step of a real
|
|
166
|
+
task, from a new user's position, four questions (Wharton et al.; NN/g):
|
|
167
|
+
|
|
168
|
+
1. Will the user try to achieve the right effect here?
|
|
169
|
+
2. Will the user notice the correct action is available?
|
|
170
|
+
3. Will the user associate the correct action with the effect they are trying to
|
|
171
|
+
achieve?
|
|
172
|
+
4. If the correct action is performed, will the user see progress is being made?
|
|
173
|
+
|
|
174
|
+
A "no" is a finding with the step it belongs to. It is the cheapest way to catch
|
|
175
|
+
the defect heuristics miss: a control that exists, is labelled correctly, and is
|
|
176
|
+
still not found.
|
|
177
|
+
|
|
178
|
+
## The UX evidence map
|
|
179
|
+
|
|
180
|
+
A UX claim is only a finding when a named tool call produced it. `analyze-app`
|
|
181
|
+
wires the servers; this is which call evidences which claim, and what kind of
|
|
182
|
+
result it is. A `failure` is reproducible (an assertion, a log, a measurement); a
|
|
183
|
+
`judgement` is a heuristic read in context and must carry its confidence anchor.
|
|
184
|
+
|
|
185
|
+
| Claim | The call that evidences it | Kind |
|
|
186
|
+
|---|---|---|
|
|
187
|
+
| flow structure, names, roles, states | `browser_snapshot`, `browser_find`; `mobile_list_elements_on_screen` | judgement (failure when a step is impossible) |
|
|
188
|
+
| "this text/control is not there" | `browser_verify_text_visible`, `browser_verify_element_visible`, `browser_verify_value` | failure - re-runnable |
|
|
189
|
+
| the surface behind a login | `browser_storage_state` + `browser_set_storage_state`, never an attach to the real profile | - |
|
|
190
|
+
| the offline and failing-backend states | `browser_network_state_set`, `browser_route` | failure |
|
|
191
|
+
| errors a step produced | `browser_console_messages`, `browser_network_requests`; `mobile_get_device_logs`, `mobile_list_crashes` | failure |
|
|
192
|
+
| contrast, target size, focus order, text spacing | `browser_evaluate`, run as a measurement in the page | failure (measured) |
|
|
193
|
+
| layout at a named width | `browser_resize` then re-read the tree | failure |
|
|
194
|
+
| visual hierarchy, platform feel, "cluttered" | `browser_take_screenshot`, naming why the tree cannot answer; read the image, do not just save it | judgement |
|
|
195
|
+
| a WCAG violation, sweep | axe-core injected with `browser_evaluate` (pin the version; never a floating tag) | failure, with its own scope limit |
|
|
196
|
+
| a type scale, spacing rhythm, contrast ratio, z-order | `browser_evaluate` reading computed styles | failure (measured) |
|
|
197
|
+
| loading / responsiveness | `PerformanceObserver` for LCP, INP and CLS against their published thresholds: good is <=2500 ms, <=200 ms, <=0.1; poor is >4000 ms, >500 ms, >0.25 (web.dev) | failure |
|
|
198
|
+
| learnability of a task | the cognitive walkthrough's four questions per step | judgement |
|
|
199
|
+
| perceived usability | SUS (>68 is above average) or the two-item UMUX-Lite - an instrument for real users, so the agent records it as **to be run**, never as a number it produced | the user's, not the agent's |
|
|
200
|
+
|
|
201
|
+
Three rules fall out of the table. First, state the viewport: a layout finding that
|
|
202
|
+
holds at one width and not another is not a finding until both are checked. Second,
|
|
203
|
+
on mobile there is no assertion, mocking or geometry tool - so a mobile UX claim is
|
|
204
|
+
a judgement unless re-walking the flow reproduces it, and contrast, tap-target size
|
|
205
|
+
and focus order are not claimed at all without a screenshot. Third, know what an
|
|
206
|
+
automated tool cannot see: axe-core's own documentation puts it at about **57% of
|
|
207
|
+
WCAG issues** found automatically, and an independent list names the checks it
|
|
208
|
+
misses - focus appearance, target size, dragging, accessible authentication. Those
|
|
209
|
+
are hand-checked, not assumed.
|
|
210
|
+
|
|
211
|
+
## What else to bring in
|
|
212
|
+
|
|
213
|
+
Cheap, standard, and each one answers a question the axes above cannot. Add the
|
|
214
|
+
ones the product's stage justifies, and say which were skipped.
|
|
215
|
+
|
|
216
|
+
| Analyser | Answers | Cost |
|
|
217
|
+
|---|---|---|
|
|
218
|
+
| axe-core via `browser_evaluate` | WCAG A/AA/AAA sweeps, plus best practices | one pinned injection per page |
|
|
219
|
+
| `PerformanceObserver` + the chrome-devtools sidecar | LCP / INP / CLS against their thresholds, and the trace behind a slow one | the sidecar is opt-in |
|
|
220
|
+
| Device and density sweep | the same screen at 320/768/1280, dark mode, 200% text | one capture each |
|
|
221
|
+
| Copy audit | empty/error/confirmation wording, Turkish grammar and terminology consistency, i18n length overflow | reading the strings the app actually renders |
|
|
222
|
+
| Visual diff between two builds | what the last release changed visually | two captures of the same screen |
|
|
223
|
+
| SUS / UMUX-Lite | perceived usability with a benchmark to compare to | needs real users |
|
|
224
|
+
| Review mining of competitors | the market's words, and where they are unhappy | already in the competitive axis |
|
|
225
|
+
| Support tickets and analytics | behaviour the app cannot be asked about | needs access the agent does not have |
|
|
226
|
+
|
|
227
|
+
## The competitive axis's discipline
|
|
228
|
+
|
|
229
|
+
- State the comparison basis first (cost, latency, task time, feature density).
|
|
230
|
+
Inconsistent units weaken the analysis faster than anything else.
|
|
231
|
+
- Compare a *representative* version and say which one; a premium or region-specific
|
|
232
|
+
build generalises badly.
|
|
233
|
+
- Cost and effort are ranges with stated assumptions; the method's own first
|
|
234
|
+
limitation is false precision.
|
|
235
|
+
- Review mining gives the market's own words: group into themes, read sentiment per
|
|
236
|
+
theme, and compare against our own app before calling something a gap.
|
|
237
|
+
- A teardown ends in a decision, not a report: what we adopt, what we deliberately
|
|
238
|
+
do not, and who owns it.
|
|
239
|
+
|
|
240
|
+
## The artifact
|
|
241
|
+
|
|
242
|
+
Run it as a research line, not a monologue: `tezgah-research init <slug>
|
|
243
|
+
--question "..."` under the repository's `.tezgah/research/`, then `check` before
|
|
244
|
+
reporting. Declare the line's `deliverable` in `state.json` as `{"kind":
|
|
245
|
+
"analysis", "path": "<where the analysis lands>", "ask": [<the ask's items>]}`, so
|
|
246
|
+
`check` holds it to three compared solutions and to answering every ask item. On
|
|
247
|
+
top of what `check` already enforces, the analysis contains:
|
|
248
|
+
|
|
249
|
+
1. Measurement readiness: what is observable today, and what is not.
|
|
250
|
+
2. The objective: one measurable outcome and its Goal -> Signal -> Metric chain.
|
|
251
|
+
3. Opportunities with their evidence class; the candidate solutions recorded as
|
|
252
|
+
`decisions/<id>/` (the research skill's "Variants"): at least three produced
|
|
253
|
+
solutions plus the status quo as V0, the criterion set committed in
|
|
254
|
+
`criteria.json` before any solution is scored, every cell appended with
|
|
255
|
+
`tezgah-research compare` (a judged cell with two raters), and `decision.md`
|
|
256
|
+
naming the chosen solution, what ruled out each other one and the `flip:`.
|
|
257
|
+
4. Risks by class - value, usability, viability, feasibility - each with the
|
|
258
|
+
cheapest test that would falsify it.
|
|
259
|
+
5. The usability section: scope (task, section, device, breakpoints), the heuristics
|
|
260
|
+
checked, the state matrix as a table with a row per interactive component and a
|
|
261
|
+
row per data view, each row naming the states checked and each state that does
|
|
262
|
+
not exist,
|
|
263
|
+
findings at their level (screen / component / state / property) with the screen
|
|
264
|
+
they were read from, severity 0-4, and whether each is a `failure` or a
|
|
265
|
+
`judgement` with its rater count; the screenshots read, and what the blur and
|
|
266
|
+
grayscale tests showed; the axe-core sweep and its uncovered checks; the WCAG 2.2
|
|
267
|
+
level claimed or missing; the walkthrough's per-step answers.
|
|
268
|
+
6. The feasibility section: for each intended behaviour, the code that implements
|
|
269
|
+
it, cited. For a single-feature analysis this section carries the coherence
|
|
270
|
+
pass's filled matrices - capability, field contract, flow/step, interaction
|
|
271
|
+
dependency - each row with its citation and its coverage marker.
|
|
272
|
+
7. The competitive section: comparison basis, the set compared, per-competitor cited
|
|
273
|
+
facts with dates, review themes with volume.
|
|
274
|
+
8. The triage table: keep / fix / cut / bet per feature, with the deciding metric,
|
|
275
|
+
threshold, timeframe, action, flag and owner.
|
|
276
|
+
9. Findings, most severe first, each with its class and citation.
|
|
277
|
+
10. For each recommendation, the reference: who already does it best, cited, and
|
|
278
|
+
what we would adopt.
|
|
279
|
+
11. What the analysis did **not** look at, and what would change the recommendation.
|
|
280
|
+
|
|
281
|
+
A section with no evidence says so in one line; it does not disappear, because a
|
|
282
|
+
missing axis reads as a covered one. Every element this list names is produced or
|
|
283
|
+
named in the artifact with the reason it was not - an element inside a section, not
|
|
284
|
+
only a section: a state matrix left out silently, an image test never run, an
|
|
285
|
+
axe-core sweep dropped or a scorecard dimension missing all read the same way.
|
|
286
|
+
|
|
287
|
+
## The scorecard
|
|
288
|
+
|
|
289
|
+
Score each dimension 1-5 and report the mean with its anchors; the anchors are the
|
|
290
|
+
`research` skill's (5 nothing material missing, 4 one minor gap, 3 a gap a reviewer
|
|
291
|
+
would raise, 2 a gap that undermines a claim, 1 not addressed). Mean >=4.5 with no
|
|
292
|
+
dimension below 3 reads as accept; >=3.8 weak accept; >=3.0 revise; below that, or
|
|
293
|
+
any dimension at 1, reject.
|
|
294
|
+
|
|
295
|
+
| Dimension | The question |
|
|
296
|
+
|---|---|
|
|
297
|
+
| Evidence relevance | does the cited source actually support what the finding says? |
|
|
298
|
+
| Class discipline | is every finding's class named and honoured, including `ui-observed` from the running app? |
|
|
299
|
+
| Depth | does every screen reach component x state, and is anything measured rather than eyeballed? |
|
|
300
|
+
| Image evidence | were the rendered screens actually read - the blur and grayscale tests, the breakpoints, dark mode - or only the tree? |
|
|
301
|
+
| Axis coverage | are all five axes addressed or explicitly excluded? |
|
|
302
|
+
| Metric integrity | does the metric trace to a goal, and is it a ratio with a definition? |
|
|
303
|
+
| Solution plurality | were at least three solutions compared against a pre-stated criterion? |
|
|
304
|
+
| Feasibility grounding | is the implementation claim a cited code path, not an inference? |
|
|
305
|
+
| Decision quality | does every feature end keep / fix / cut / bet, with a criterion and an owner? |
|
|
306
|
+
| Scope calibration | does the analysis say what it did not look at, and what would flip it? |
|
|
307
|
+
|
|
308
|
+
## The failure modes this exists to stop
|
|
309
|
+
|
|
310
|
+
- A framework named without its artifact ("use JTBD here" with no interview, no
|
|
311
|
+
quote, no score).
|
|
312
|
+
- A UI opinion with no screen, no state and no severity - the axis the first run of
|
|
313
|
+
this skill missed entirely.
|
|
314
|
+
- A competitor "comparison" with no basis, no version and no date.
|
|
315
|
+
- A feature list where nothing is ever cut.
|
|
316
|
+
- A metric with no definition, no window and no denominator.
|
|
317
|
+
- Advice that cannot be falsified: "improve onboarding" instead of the step, the
|
|
318
|
+
measured drop-off and the number that would move.
|
|
319
|
+
- A recommendation whose flip condition is never stated: a preference wearing a
|
|
320
|
+
decision's clothes.
|
|
321
|
+
|
|
322
|
+
## Where the depth lives
|
|
323
|
+
|
|
324
|
+
Read the one that matches the axis; never cite these from memory.
|
|
325
|
+
|
|
326
|
+
- `pm-frameworks` (vendored in this repository) - `opportunity-solution-tree` for
|
|
327
|
+
the value axis, `intended-vs-implemented` for the feasibility axis; `SOURCE`
|
|
328
|
+
records the upstream revision.
|
|
329
|
+
- `feature-audit` (this repository) - the layer-coherence pass: the capability,
|
|
330
|
+
field-contract, flow/step and interaction-dependency matrices, the per-surface
|
|
331
|
+
rules with their WAI-ARIA APG and WCAG 2.2 sources, and the capability-change
|
|
332
|
+
proposal headings. Read it whenever one feature is in scope.
|
|
333
|
+
- `phuryn/pm-skills` (MIT) - `pm-data-analytics` (cohort, A/B), `pm-ai-shipping`
|
|
334
|
+
(security and performance audits, test-coverage map), the rest of discovery.
|
|
335
|
+
- HEART, `https://research.google.com/pubs/archive/36299.pdf` (CHI 2010).
|
|
336
|
+
- Nielsen's 10 heuristics and the severity scale,
|
|
337
|
+
`https://www.nngroup.com/articles/ten-usability-heuristics/` and
|
|
338
|
+
`https://www.nngroup.com/articles/how-to-rate-the-severity-of-usability-problems/`.
|
|
339
|
+
- The cognitive walkthrough's four questions: Wharton, Rieman, Lewis & Polson,
|
|
340
|
+
*The Cognitive Walkthrough Method: A Practitioner's Guide* (1994), and
|
|
341
|
+
`https://www.nngroup.com/articles/cognitive-walkthroughs`.
|
|
342
|
+
- Component state coverage: the Carbon Design System component checklist
|
|
343
|
+
(`https://carbondesignsystem.com/getting-started/contributing/component-checklist`).
|
|
344
|
+
- Automated WCAG coverage: axe-core's own figure of about 57% of issues
|
|
345
|
+
(`https://github.com/dequelabs/axe-core`), and the checks it misses as an
|
|
346
|
+
independent list (`https://github.com/Ax1zz/sightline`).
|
|
347
|
+
- Core Web Vitals thresholds: `https://web.dev/articles/inp` and
|
|
348
|
+
`https://web.dev/articles/vitals`.
|
|
349
|
+
- The perceived-usability instruments: SUS, where "a SUS score above a 68 would be
|
|
350
|
+
considered above average" (`https://measuringu.com/sus`), and UMUX-Lite, its
|
|
351
|
+
two-item correlate (`https://measuringu.com/umux-lite`).
|
|
352
|
+
- WCAG 2.2 (`https://www.w3.org/TR/WCAG22/`) and WCAG2Mobile
|
|
353
|
+
(`https://www.w3.org/TR/wcag2mobile-22/`).
|
|
354
|
+
- The 2025 DORA report, `https://dora.dev/research/2025/dora-report/` - AI as an
|
|
355
|
+
amplifier, and the verification tax ungrounded output creates.
|
|
356
|
+
|
|
357
|
+
The repository's own machinery: `research` for the loop and the claim record;
|
|
358
|
+
`analyze-app` for the running-app evidence the usability axis requires; `harness`
|
|
359
|
+
and the code graph for the feasibility axis's callers and blast radius.
|
|
360
|
+
|
|
361
|
+
Off: `research-off`, which disarms the product rule and the research route together.
|