@event4u/agent-config 7.5.0 → 8.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/.claude-plugin/marketplace.json +8 -1
- package/AGENTS.md +9 -9
- package/CHANGELOG.md +325 -0
- package/README.md +35 -5
- package/dist/agent-src/commands/analytics/prune.md +1 -1
- package/dist/agent-src/commands/analytics/show.md +1 -1
- package/dist/agent-src/commands/analyze/decision.md +2 -2
- package/dist/agent-src/commands/analyze/incident.md +2 -2
- package/dist/agent-src/commands/analyze/near-miss.md +2 -2
- package/dist/agent-src/commands/analyze/postmortem.md +2 -2
- package/dist/agent-src/commands/analyze/premortem.md +2 -2
- package/dist/agent-src/commands/cost-report.md +25 -0
- package/dist/agent-src/commands/evals/analyze.json +30 -0
- package/dist/agent-src/commands/evals/mission-upgrade.json +30 -0
- package/dist/agent-src/commands/implement-ticket.md +1 -1
- package/dist/agent-src/commands/knowledge/forget.md +1 -1
- package/dist/agent-src/commands/knowledge/ingest.md +1 -1
- package/dist/agent-src/commands/knowledge/list.md +1 -1
- package/dist/agent-src/commands/memory/load.md +12 -11
- package/dist/agent-src/commands/memory/promote.md +30 -0
- package/dist/agent-src/commands/memory/propose.md +16 -2
- package/dist/agent-src/commands/mission/upgrade.md +1 -1
- package/dist/agent-src/commands/module/explore.md +11 -7
- package/dist/agent-src/commands/optimize-project.md +243 -0
- package/dist/agent-src/commands/optimize.md +5 -0
- package/dist/agent-src/commands/pr/create.md +37 -8
- package/dist/agent-src/commands/prediction-pool.md +2 -2
- package/dist/agent-src/commands/profile/activate.md +3 -3
- package/dist/agent-src/commands/profile/deactivate.md +2 -2
- package/dist/agent-src/commands/profile/show.md +3 -3
- package/dist/agent-src/commands/research/deep.md +5 -0
- package/dist/agent-src/commands/research/report.md +2 -1
- package/dist/agent-src/commands/roadmap/create.md +88 -10
- package/dist/agent-src/commands/roadmap/materialize.md +1 -1
- package/dist/agent-src/commands/roadmap/process-full.md +15 -2
- package/dist/agent-src/commands/roadmap/process-phase.md +18 -6
- package/dist/agent-src/commands/roadmap/process-step.md +4 -0
- package/dist/agent-src/commands/roadmap.md +1 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync-agent-settings.md +1 -1
- package/dist/agent-src/commands/sync-gitignore/fix.md +42 -6
- package/dist/agent-src/commands/team-knowledge/bootstrap.md +106 -0
- package/dist/agent-src/commands/team-knowledge/consolidate.md +105 -0
- package/dist/agent-src/commands/team-knowledge.md +64 -0
- package/dist/agent-src/contexts/authority/commit-mechanics.md +8 -0
- package/dist/agent-src/contexts/authority/destructive-mechanics.md +11 -0
- package/dist/agent-src/contexts/authority/scope-mechanics.md +25 -0
- package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +43 -0
- package/dist/agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +2 -2
- package/dist/agent-src/contexts/contracts/frugality-charter.md +1 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +14 -4
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +11 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +32 -8
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +107 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +71 -15
- package/dist/agent-src/contexts/execution/subagent-steering.md +41 -1
- package/dist/agent-src/contexts/override-system.md +1 -1
- package/dist/agent-src/personas/brand-strategist.md +0 -1
- package/dist/agent-src/personas/data-integrity.md +66 -0
- package/dist/agent-src/personas/design-director.md +0 -1
- package/dist/agent-src/personas/performance-engineer.md +66 -0
- package/dist/agent-src/personas/production-validator.md +73 -0
- package/dist/agent-src/rules/agent-authority.md +3 -4
- package/dist/agent-src/rules/analysis-skill-routing.md +3 -5
- package/dist/agent-src/rules/architecture.md +2 -4
- package/dist/agent-src/rules/artifact-drafting-protocol.md +35 -6
- package/dist/agent-src/rules/artifact-engagement-recording.md +2 -4
- package/dist/agent-src/rules/ask-when-uncertain.md +10 -14
- package/dist/agent-src/rules/augment-edit-discipline.md +3 -5
- package/dist/agent-src/rules/autonomous-execution.md +3 -5
- package/dist/agent-src/rules/brand-consistency.md +3 -5
- package/dist/agent-src/rules/brand-source-of-truth.md +3 -5
- package/dist/agent-src/rules/cli-output-handling.md +4 -6
- package/dist/agent-src/rules/command-suggestion-policy.md +3 -5
- package/dist/agent-src/rules/commit-conventions.md +3 -5
- package/dist/agent-src/rules/commit-policy.md +8 -10
- package/dist/agent-src/rules/content-quoting-floor.md +88 -0
- package/dist/agent-src/rules/context-hygiene.md +3 -5
- package/dist/agent-src/rules/copilot-routing.md +4 -6
- package/dist/agent-src/rules/decision-revisit-gate.md +120 -0
- package/dist/agent-src/rules/delegation-policy.md +10 -6
- package/dist/agent-src/rules/design-fidelity.md +3 -5
- package/dist/agent-src/rules/devcontainer-routing.md +4 -6
- package/dist/agent-src/rules/direct-answers.md +13 -17
- package/dist/agent-src/rules/docker-commands.md +3 -5
- package/dist/agent-src/rules/domain-adoption-policy.md +3 -5
- package/dist/agent-src/rules/domain-safety-disclaimer.md +3 -5
- package/dist/agent-src/rules/domain-safety-pii.md +3 -5
- package/dist/agent-src/rules/domain-safety-retention.md +3 -5
- package/dist/agent-src/rules/downstream-changes.md +3 -4
- package/dist/agent-src/rules/engineering-safety-floor.md +3 -5
- package/dist/agent-src/rules/external-reference-deep-dive.md +3 -5
- package/dist/agent-src/rules/fast-path-marker-visibility.md +3 -5
- package/dist/agent-src/rules/finance-safety-floor.md +3 -6
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -5
- package/dist/agent-src/rules/git-history-discipline.md +3 -5
- package/dist/agent-src/rules/guidelines.md +2 -4
- package/dist/agent-src/rules/icon-consistency.md +3 -5
- package/dist/agent-src/rules/image-likeness-and-rights.md +3 -5
- package/dist/agent-src/rules/improve-before-implement.md +5 -5
- package/dist/agent-src/rules/invite-challenge.md +3 -5
- package/dist/agent-src/rules/language-and-tone.md +13 -15
- package/dist/agent-src/rules/laravel-routing.md +3 -5
- package/dist/agent-src/rules/laravel-translations.md +3 -5
- package/dist/agent-src/rules/legal-safety-floor.md +3 -5
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -5
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +4 -7
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -5
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +2 -4
- package/dist/agent-src/rules/media-governance-routing.md +3 -5
- package/dist/agent-src/rules/media-sync-ground-truth.md +3 -5
- package/dist/agent-src/rules/minimal-safe-diff.md +5 -5
- package/dist/agent-src/rules/missing-tool-handling.md +3 -5
- package/dist/agent-src/rules/model-recommendation.md +4 -6
- package/dist/agent-src/rules/no-attribution-footers.md +3 -5
- package/dist/agent-src/rules/no-cheap-questions.md +5 -8
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +3 -6
- package/dist/agent-src/rules/no-pr-progress-comments.md +3 -6
- package/dist/agent-src/rules/no-roadmap-references.md +3 -5
- package/dist/agent-src/rules/non-destructive-by-default.md +11 -13
- package/dist/agent-src/rules/notes-first-reasoning.md +3 -5
- package/dist/agent-src/rules/onboarding-gate.md +4 -6
- package/dist/agent-src/rules/output-discipline.md +3 -5
- package/dist/agent-src/rules/package-ci-checks.md +3 -5
- package/dist/agent-src/rules/persona-governance.md +2 -4
- package/dist/agent-src/rules/php-coding.md +3 -5
- package/dist/agent-src/rules/preservation-guard.md +2 -4
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +3 -5
- package/dist/agent-src/rules/reviewer-awareness.md +5 -6
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +3 -5
- package/dist/agent-src/rules/roadmap-progress-sync.md +5 -5
- package/dist/agent-src/rules/role-mode-adherence.md +2 -4
- package/dist/agent-src/rules/rule-type-governance.md +3 -5
- package/dist/agent-src/rules/runtime-safety.md +2 -4
- package/dist/agent-src/rules/scope-control.md +10 -11
- package/dist/agent-src/rules/security-sensitive-stop.md +4 -5
- package/dist/agent-src/rules/size-enforcement.md +2 -4
- package/dist/agent-src/rules/skill-improvement-trigger.md +3 -5
- package/dist/agent-src/rules/skill-quality.md +3 -5
- package/dist/agent-src/rules/slash-command-routing-policy.md +3 -5
- package/dist/agent-src/rules/source-confidentiality.md +3 -5
- package/dist/agent-src/rules/source-discovery-gate.md +3 -5
- package/dist/agent-src/rules/source-of-truth.md +3 -5
- package/dist/agent-src/rules/strategy-safety-floor.md +3 -5
- package/dist/agent-src/rules/symfony-routing.md +4 -6
- package/dist/agent-src/rules/telegraph-speak.md +4 -5
- package/dist/agent-src/rules/think-before-action.md +7 -4
- package/dist/agent-src/rules/token-budget-discipline.md +29 -5
- package/dist/agent-src/rules/token-efficiency.md +3 -5
- package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -5
- package/dist/agent-src/rules/tool-safety.md +2 -4
- package/dist/agent-src/rules/ui-audit-gate.md +3 -6
- package/dist/agent-src/rules/untrusted-input-defense.md +3 -5
- package/dist/agent-src/rules/upstream-proposal.md +4 -6
- package/dist/agent-src/rules/user-interaction.md +7 -5
- package/dist/agent-src/rules/user-interrupt-priority.md +17 -8
- package/dist/agent-src/rules/verify-before-complete.md +12 -22
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +3 -3
- package/dist/agent-src/scripts/update_roadmap_progress.ts +197 -7
- package/dist/agent-src/skills/adr-create/SKILL.md +48 -42
- package/dist/agent-src/skills/agent-docs-writing/SKILL.md +18 -0
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/ai-council/SKILL.md +14 -1
- package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +0 -3
- package/dist/agent-src/skills/brand/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-identity/SKILL.md +3 -3
- package/dist/agent-src/skills/brand-strategy/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +3 -3
- package/dist/agent-src/skills/canvas-design/SKILL.md +6 -0
- package/dist/agent-src/skills/check-refs/SKILL.md +7 -4
- package/dist/agent-src/skills/code-review/SKILL.md +1 -0
- package/dist/agent-src/skills/complexity-first-planning/SKILL.md +6 -5
- package/dist/agent-src/skills/condense-memory/SKILL.md +11 -11
- package/dist/agent-src/skills/context-document/SKILL.md +17 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +3 -3
- package/dist/agent-src/skills/decision-record/SKILL.md +6 -0
- package/dist/agent-src/skills/decision-review/SKILL.md +5 -3
- package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +6 -1
- package/dist/agent-src/skills/design-intelligence/SKILL.md +5 -2
- package/dist/agent-src/skills/design-intelligence/references/design-languages.md +1 -1
- package/dist/agent-src/skills/design-tokens/SKILL.md +10 -4
- package/dist/agent-src/skills/design-variations/SKILL.md +127 -0
- package/dist/agent-src/skills/design-variations/evals/triggers.json +17 -0
- package/dist/agent-src/skills/emit-tickets/SKILL.md +4 -4
- package/dist/agent-src/skills/fe-design/SKILL.md +20 -0
- package/dist/agent-src/skills/html-deck/SKILL.md +123 -0
- package/dist/agent-src/skills/html-deck/evals/triggers.json +17 -0
- package/dist/agent-src/skills/html-deck/templates/deck-shell.html +77 -0
- package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -0
- package/dist/agent-src/skills/laravel/SKILL.md +0 -1
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +46 -0
- package/dist/agent-src/skills/lint-skills/SKILL.md +6 -6
- package/dist/agent-src/skills/md-language-check/SKILL.md +3 -3
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +66 -1
- package/dist/agent-src/skills/migration-architect/SKILL.md +1 -0
- package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +2 -2
- package/dist/agent-src/skills/performance-analysis/SKILL.md +2 -0
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +4 -4
- package/dist/agent-src/skills/premortem/SKILL.md +0 -3
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +16 -0
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +3 -1
- package/dist/agent-src/skills/release-comms/SKILL.md +46 -45
- package/dist/agent-src/skills/roadmap-management/SKILL.md +21 -0
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +32 -2
- package/dist/agent-src/skills/root-cause-frameworks/SKILL.md +0 -3
- package/dist/agent-src/skills/security-audit/SKILL.md +1 -0
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -0
- package/dist/agent-src/skills/source-discovery/SKILL.md +22 -3
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +33 -14
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +11 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +8 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +29 -0
- package/dist/agent-src/skills/threat-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/typography-system/SKILL.md +2 -2
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +2 -0
- package/dist/agent-src/skills/wireframe/SKILL.md +118 -0
- package/dist/agent-src/skills/wireframe/evals/triggers.json +17 -0
- package/dist/agent-src/templates/agent-settings.md +22 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/command.md +2 -2
- package/dist/agent-src/templates/contexts/knowledge-pages.md +116 -0
- package/dist/agent-src/templates/hooks/pre-commit-frontmatter +1 -1
- package/dist/agent-src/templates/roadmaps.md +70 -2
- package/dist/agent-src/templates/rule.md +1 -1
- package/dist/agent-src/templates/scripts/README.md +3 -3
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +109 -0
- package/dist/agent-src/templates/tickets.md +8 -8
- package/dist/cli/commands/recordTriggerEval.test.js +1 -1
- package/dist/cli/commands/recordTriggerEval.test.js.map +1 -1
- package/dist/cli/initRouting.js +4 -2
- package/dist/cli/initRouting.js.map +1 -1
- package/dist/cli/registry.js +1 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +718 -240
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +8 -8
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +43 -28
- package/dist/discovery/trust-report.md +12 -11
- package/dist/discovery/workspaces.json +29 -18
- package/dist/install/preflight.js +173 -0
- package/dist/install/preflight.js.map +1 -0
- package/dist/mcp/registry-manifest.json +4 -4
- package/dist/router.json +1 -1
- package/dist/server/routes/settings.js +4 -0
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/schemas/settings.js +3 -1
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/CLAIMS.md +108 -0
- package/docs/MIGRATION.md +3 -3
- package/docs/architecture.md +5 -5
- package/docs/benchmark.md +133 -2
- package/docs/benchmark.pinned.yml +31 -0
- package/docs/capability-matrix.md +1 -0
- package/docs/catalog.md +70 -60
- package/docs/command-flows.md +15 -3
- package/docs/comparison.yaml +35 -0
- package/docs/contracts/agents-layout.md +148 -0
- package/docs/contracts/brand-token-consumption.md +5 -0
- package/docs/contracts/capability-boundary.md +5 -0
- package/docs/contracts/command-category-governance.md +5 -0
- package/docs/contracts/command-clusters.md +1 -0
- package/docs/contracts/command-surface-tiers.md +1 -1
- package/docs/contracts/conformance.md +84 -0
- package/docs/contracts/creative-pack-boundary.md +5 -0
- package/docs/contracts/discovery-manifest.schema.json +5 -4
- package/docs/contracts/file-ownership-matrix.json +4605 -985
- package/docs/contracts/governance-enforcement-projection.md +5 -0
- package/docs/contracts/gui-wizard.md +1 -1
- package/docs/contracts/hook-architecture-v1.md +2 -2
- package/docs/contracts/implement-ticket-flow.md +1 -1
- package/docs/contracts/kernel-membership.md +13 -0
- package/docs/contracts/mcp-tool-inventory.md +23 -23
- package/docs/contracts/no-runtime-boundary.md +6 -1
- package/docs/contracts/review-lens-schema.md +5 -0
- package/docs/contracts/rule-router.md +102 -8
- package/docs/contracts/skill-bundled-assets.md +1 -1
- package/docs/contracts/skill-dry-run.md +1 -1
- package/docs/contracts/subagent-boundary.md +5 -0
- package/docs/contracts/ticket-bundle-format.md +9 -4
- package/docs/contracts/tier-3-contrib-plugin.md +2 -2
- package/docs/contracts/write-engine.md +3 -0
- package/docs/customization.md +87 -15
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +1 -1
- package/docs/decisions/ADR-109-subagent-v1-contract.md +246 -0
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +105 -0
- package/docs/decisions/INDEX.md +2 -0
- package/docs/distribution/awesome-list-submission.md +46 -0
- package/docs/distribution/launch-story-draft.md +58 -0
- package/docs/end-to-end-walkthroughs.md +2 -2
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +24 -0
- package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +1 -1
- package/docs/guidelines/agent-infra/linked-projects-onboarding-gate.md +2 -2
- package/docs/guidelines/agent-infra/missing-tool-handling.md +3 -3
- package/docs/guidelines/agent-infra/verify-before-complete-demos.md +2 -2
- package/docs/guidelines/augment-portability-patterns.md +1 -1
- package/docs/guidelines/code-clarity.md +19 -0
- package/docs/guidelines/design-antipatterns-triggers.json +2 -1
- package/docs/guidelines/design-antipatterns.md +10 -1
- package/docs/guidelines/design-modes.md +6 -0
- package/docs/guidelines/php/general.md +9 -1
- package/docs/guidelines/php/php-coding-patterns.md +7 -0
- package/docs/guides/cross-repo-retrieval.md +1 -1
- package/docs/guides/frontend-design-corpus-refresh.md +2 -2
- package/docs/guides/local-analytics.md +4 -4
- package/docs/guides/skill-discovery.md +1 -1
- package/docs/guides/skill-preview.md +1 -1
- package/docs/hook-payload-capture.md +6 -6
- package/docs/install-friction-report.md +66 -0
- package/docs/installation.md +1 -1
- package/docs/maintainers/optional-media-deps.md +50 -0
- package/docs/mcp-server.md +11 -12
- package/docs/media/proof-demo.cast +14 -0
- package/docs/media/proof-demo.gif +0 -0
- package/docs/migration/consumer-template-consumption-model.md +1 -1
- package/docs/migration/divergences/bench-stats-float-precision.md +1 -1
- package/docs/migration/node-floor.md +1 -1
- package/docs/migration/yaml-roundtrip-spike.md +1 -1
- package/docs/personas.md +16 -5
- package/docs/positioning-evidence.md +86 -0
- package/docs/proof.md +86 -0
- package/docs/skills-catalog.md +1 -1
- package/docs/troubleshooting.md +8 -8
- package/docs/wedge/production-validator/README.md +57 -0
- package/docs/wedge/production-validator/production-validator.md +56 -0
- package/docs/wizard.md +2 -2
- package/package.json +1 -1
- package/src/config/agent-settings.template.yml +59 -4
- package/src/config/agents-paths.yml +254 -0
- package/src/config/budgets.yml +16 -0
- package/src/config/discovery/packs.yml +1 -0
- package/src/config/discovery/unassigned-artefacts.yml +2 -0
- package/src/config/gitignore-block.txt +25 -0
- package/src/config/host-capabilities.yml +31 -0
- package/src/config/profiles/balanced.ini +4 -0
- package/src/config/profiles/full.ini +4 -0
- package/src/config/profiles/minimal.ini +4 -0
- package/src/scripts/_cli/cmd_conformance.ts +716 -0
- package/src/scripts/_cli/cmd_doctor.ts +23 -2
- package/src/scripts/_cli/cmd_fleet.ts +401 -0
- package/src/scripts/_cli/cmd_preflight.ts +159 -0
- package/src/scripts/_dispatch.bash +10 -0
- package/src/scripts/_lib/knowledge_events.ts +193 -0
- package/src/scripts/_lib/subagent_steering.ts +115 -3
- package/src/scripts/_lib/text_similarity.ts +75 -0
- package/src/scripts/ai-video/test-pipeline.sh +1 -1
- package/src/scripts/ai_council/clients.ts +19 -3
- package/src/scripts/append_contested.ts +112 -0
- package/src/scripts/audit_auto_rules.ts +11 -1
- package/src/scripts/audit_mcp_tools.ts +25 -11
- package/src/scripts/bench_ab_v2_run.ts +527 -40
- package/src/scripts/bench_ab_v2_stats.ts +6 -0
- package/src/scripts/bench_matrix.ts +266 -0
- package/src/scripts/bootstrap_knowledge.ts +267 -0
- package/src/scripts/build_discovery_manifest.ts +42 -2
- package/src/scripts/build_proof.ts +214 -0
- package/src/scripts/check_always_budget.ts +3 -0
- package/src/scripts/check_augment_description_cap.ts +2 -2
- package/src/scripts/check_claims.ts +270 -0
- package/src/scripts/check_comparison.ts +79 -0
- package/src/scripts/check_generated_artefact_headers.ts +109 -0
- package/src/scripts/check_generator_output_coverage.ts +142 -0
- package/src/scripts/check_gitignore_freshness.ts +127 -0
- package/src/scripts/check_knowledge_pages.ts +210 -0
- package/src/scripts/check_knowledge_sharing.ts +162 -0
- package/src/scripts/check_media_deps.ts +91 -0
- package/src/scripts/check_memory_contradiction.ts +280 -0
- package/src/scripts/check_memory_similarity.ts +134 -0
- package/src/scripts/check_quality_regression.ts +56 -10
- package/src/scripts/check_references.ts +3 -1
- package/src/scripts/check_release_pr_shape.ts +4 -0
- package/src/scripts/check_site_links.ts +135 -0
- package/src/scripts/check_skill_gaps.ts +99 -0
- package/src/scripts/check_token_quality_golden.ts +197 -11
- package/src/scripts/check_tracked_but_ignored.ts +67 -0
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/compile_router.ts +30 -3
- package/src/scripts/condense.ts +350 -14
- package/src/scripts/consolidate_knowledge_events.ts +192 -0
- package/src/scripts/degrade_to_pointer.ts +136 -0
- package/src/scripts/design_slop_rules.test.ts +15 -0
- package/src/scripts/design_slop_rules.ts +28 -0
- package/src/scripts/emit_knowledge_event.ts +158 -0
- package/src/scripts/export_replay_corpus.ts +187 -0
- package/src/scripts/external_sources_denylist.json +7 -2
- package/src/scripts/fold_intake.ts +281 -0
- package/src/scripts/generate_capability_matrix.ts +9 -1
- package/src/scripts/generate_knowledge_index.ts +222 -0
- package/src/scripts/hook_manifest.yaml +26 -14
- package/src/scripts/hooks/dispatch_hook.ts +18 -0
- package/src/scripts/hot_context_hook.ts +372 -0
- package/src/scripts/install +47 -0
- package/src/scripts/install-hooks.sh +17 -0
- package/src/scripts/inventory_meta_layers.ts +11 -0
- package/src/scripts/janitor.ts +258 -0
- package/src/scripts/lint_agents_layout.ts +74 -15
- package/src/scripts/lint_bench_ab.ts +4 -1
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_framework_leakage_allowlist.json +26 -3
- package/src/scripts/lint_knowledge_scale.ts +250 -0
- package/src/scripts/lint_legal_pack.ts +67 -0
- package/src/scripts/lint_persona_governance.ts +8 -3
- package/src/scripts/lint_regression.ts +15 -0
- package/src/scripts/lint_roadmap_blockers.ts +202 -0
- package/src/scripts/lint_roadmap_complexity.ts +81 -2
- package/src/scripts/lint_subagent_determinism.ts +125 -0
- package/src/scripts/measure_augment_budget.ts +46 -6
- package/src/scripts/measure_patterns.ts +4 -3
- package/src/scripts/measure_skill_reduction.ts +6 -6
- package/src/scripts/migration_status.ts +6 -2
- package/src/scripts/mine_missing_guardrails.ts +189 -0
- package/src/scripts/parity/phase_gate.ts +1 -1
- package/src/scripts/parity/replay.ts +21 -0
- package/src/scripts/project_thin_rules.ts +120 -16
- package/src/scripts/release.ts +39 -1
- package/src/scripts/render_benchmark_composite.ts +378 -0
- package/src/scripts/roadmap_progress_hook.ts +101 -43
- package/src/scripts/schemas/skill.schema.json +27 -0
- package/src/scripts/schemas/subagent.schema.json +106 -0
- package/src/scripts/skill_linter.ts +1 -0
- package/src/scripts/smoke/kernel.sh +5 -4
- package/src/scripts/surface-tiers.yml +1 -0
- package/src/scripts/sync_gitignore.ts +4 -0
- package/src/scripts/update_skill_candidates.ts +172 -0
- package/src/scripts/validate_frontmatter.ts +1 -0
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: complexity-first-planning
|
|
3
3
|
description: "Use when staging multi-component or uncertain work — tackle the load-bearing unknown first (risk-first decomposition), not the easy parts first."
|
|
4
|
-
source: package
|
|
5
4
|
domain: engineering
|
|
6
5
|
status: active
|
|
7
6
|
model_tier: medium
|
|
@@ -43,10 +42,12 @@ unknown to resolve), or when the user has already fixed the sequence.
|
|
|
43
42
|
|
|
44
43
|
## Procedure
|
|
45
44
|
|
|
46
|
-
1. **Inspect and name the unknowns.** Read the affected components first
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
1. **Inspect and name the unknowns.** Read the affected components first
|
|
46
|
+
(start from the **repo** slot of the
|
|
47
|
+
[context-spine](../../../docs/contracts/context-spine.md) when present),
|
|
48
|
+
then list which carry real uncertainty (technical feasibility, an
|
|
49
|
+
unverified integration, an ambiguous requirement) — analyze the existing
|
|
50
|
+
system before planning any change.
|
|
50
51
|
2. **Assess and rank by load-bearing risk.** The load-bearing unknown is the one
|
|
51
52
|
whose failure invalidates the most dependent work — not the one that is merely hard.
|
|
52
53
|
3. **Resolve it first.** Spike / probe / prototype the load-bearing unknown
|
|
@@ -36,13 +36,13 @@ Use when:
|
|
|
36
36
|
## Procedure
|
|
37
37
|
|
|
38
38
|
1. **Analyse target first.** Before any write, **inspect** target with `view` or `wc -l` to confirm it is always-loaded memory file (`AGENTS.md`, `CLAUDE.md`, `.cursorrules`, `GEMINI.md`, `.windsurfrules`), not generated, and has prose paragraphs to condense (pointer-only Thin-Root file may net near-zero). Skip rest of procedure if any check fails.
|
|
39
|
-
2. **Check denylist gate.** Run
|
|
39
|
+
2. **Check denylist gate.** Run `./scripts-run src/scripts/condense_memory <path> --check` — exit 0 = safe; exit 2 = denylist hit, stop and surface refusal.
|
|
40
40
|
3. **Record baseline.** `wc -c <path>` — capture pre-condensation char count for commit message.
|
|
41
|
-
4. **Condense.**
|
|
41
|
+
4. **Condense.** `./scripts-run src/scripts/condense_memory <path>`. Script writes `<path>.original.md` (verbatim backup) and rewrites `<path>` with `original_sha256:` + `condensed_at:` frontmatter.
|
|
42
42
|
5. **Inspect diff.** Eyeball every Iron-Law fence, numbered-options block, code fence, backtick span, `❌`/`⚠️`/`✅` line, and frontmatter pair — all must be byte-identical. Body prose may have lost articles (`the`/`a`/`an`) and auxiliaries (`is`/`are`/`was`/`be`/`that`/`which`).
|
|
43
|
-
6. **Validate idempotency.** Re-run
|
|
43
|
+
6. **Validate idempotency.** Re-run `./scripts-run src/scripts/condense_memory <path>` — clean re-run is no-op (body hash matches). Non-zero exit = stop, escalate.
|
|
44
44
|
7. **Commit both files together.** `<path>` and `<path>.original.md` ship as pair. Backup is rollback path; never commit one without other.
|
|
45
|
-
8. **Rollback path.** If readability fails review at step 5:
|
|
45
|
+
8. **Rollback path.** If readability fails review at step 5: `./scripts-run src/scripts/condense_memory <path> --decondense` restores backup and deletes `.original.md`.
|
|
46
46
|
|
|
47
47
|
## Output format
|
|
48
48
|
|
|
@@ -57,7 +57,7 @@ Do **not** narrate algorithm, grammar rules, or carve-out theory — rule and th
|
|
|
57
57
|
|
|
58
58
|
## Carve-outs — byte-for-byte preserved
|
|
59
59
|
|
|
60
|
-
Mirrors seven carve-out classes in [`telegraph-speak`](../../rules/telegraph-speak.md). Condensation engine in [`scripts/condense_memory.
|
|
60
|
+
Mirrors seven carve-out classes in [`telegraph-speak`](../../rules/telegraph-speak.md). Condensation engine in [`src/scripts/condense_memory.ts`](../../../src/scripts/condense_memory.ts) preserves:
|
|
61
61
|
|
|
62
62
|
1. **Triple-backtick fences** — any language, any depth.
|
|
63
63
|
2. **Numbered-options lines** — `^>?\s*\d+\.\s` plus `**Recommendation:**` / `**Empfehlung:**` label.
|
|
@@ -67,7 +67,7 @@ Mirrors seven carve-out classes in [`telegraph-speak`](../../rules/telegraph-spe
|
|
|
67
67
|
6. **Frontmatter blocks** — `---` fence pairs at head of file.
|
|
68
68
|
7. **Mode markers** per [`role-mode-adherence`](../../rules/role-mode-adherence.md).
|
|
69
69
|
|
|
70
|
-
Mangling any of these breaks Iron-Law surface host tool reads. Unit tests in `tests/
|
|
70
|
+
Mangling any of these breaks Iron-Law surface host tool reads. Unit tests in `tests/scripts/condense_memory.test.ts` lock each carve-out class as regression case.
|
|
71
71
|
|
|
72
72
|
## Idempotency contract — Step 9 guard
|
|
73
73
|
|
|
@@ -83,7 +83,7 @@ If you need to edit condensed memory file, run `--decondense` first, edit restor
|
|
|
83
83
|
|
|
84
84
|
## Sensitive-path gate
|
|
85
85
|
|
|
86
|
-
Every read path passes through [`scripts/validate_safe_paths.
|
|
86
|
+
Every read path passes through [`src/scripts/validate_safe_paths.ts`](../../../src/scripts/validate_safe_paths.ts) `assert_safe()` before bytes leave disk. Gate is security floor for Phase 2 (input-side condensation) per `step-16-telegraph-substance.md` Phase 0; rollback of gate is rollback of this skill.
|
|
87
87
|
|
|
88
88
|
CLI exit codes:
|
|
89
89
|
|
|
@@ -106,7 +106,7 @@ CLI exit codes:
|
|
|
106
106
|
No published `telegraph-v2` baseline for input-side savings yet (Step 11 of `step-16-telegraph-substance.md` ships that). Until then, maintainer judges per-target whether condensation pays its readability cost. Suggested workflow:
|
|
107
107
|
|
|
108
108
|
1. `wc -c <path>` before — record baseline char count.
|
|
109
|
-
2.
|
|
109
|
+
2. `./scripts-run src/scripts/condense_memory <path>` — condense + back up.
|
|
110
110
|
3. `wc -c <path>` after — record post-condensation char count.
|
|
111
111
|
4. Eyeball diff: does prose stay legible? Are all Iron-Law fences intact?
|
|
112
112
|
5. If yes → commit both `<path>` and `<path>.original.md`. If no → `--decondense`.
|
|
@@ -116,8 +116,8 @@ Future `telegraph-v2.md` will tabulate realised input-token saving against `agen
|
|
|
116
116
|
## Cross-references
|
|
117
117
|
|
|
118
118
|
- [`telegraph-speak`](../../rules/telegraph-speak.md) — runtime rule script mirrors for input-side targets; `telegraph.speak_scope` does **not** gate this script (input-side runs regardless).
|
|
119
|
-
- [`scripts/validate_safe_paths.
|
|
120
|
-
- [`scripts/condense_memory.
|
|
121
|
-
- [`tests/
|
|
119
|
+
- [`src/scripts/validate_safe_paths.ts`](../../../src/scripts/validate_safe_paths.ts) — Phase 0 gate; ported from upstream Telegraph `63a91ec`.
|
|
120
|
+
- [`src/scripts/condense_memory.ts`](../../../src/scripts/condense_memory.ts) — implementation.
|
|
121
|
+
- [`tests/scripts/condense_memory.test.ts`](../../../tests/scripts/condense_memory.test.ts) — regression locks for each carve-out + idempotency + denylist.
|
|
122
122
|
- [`docs/contracts/condensation-default-kill-criterion.md`](../../../docs/contracts/condensation-default-kill-criterion.md) — v1 verdict (output-side; informs but does not gate this skill).
|
|
123
123
|
- [`agents-md-thin-root`](../agents-md-thin-root/SKILL.md) — caps consumer-shipped `templates/AGENTS.md`; this skill is one tool to land under cap.
|
|
@@ -72,6 +72,7 @@ agents/settings/contexts/ # Project-wide contexts
|
|
|
72
72
|
| **Knowledge card** | Trust-tiered cache of *expensive* (remote) structural evidence — negative facts + pointers durable, positive structure a hypothesis | `lodash.md`, `stripe-api.md` |
|
|
73
73
|
| **Standards card (Class A)** | Coding standards **derived from real tooling config** — pointer + digest, `trust: high (config-derived)`, auto-refreshed when config changes; never a flattened claim | `coding-standards.md` (points at `ruff.toml`, `.editorconfig`) |
|
|
74
74
|
| **Lesson card (Class C)** | Learned lesson — `symptom` (fact) split from `hypothesis` (decaying theory), `trust: low`, subject-not-person, anti-calcification decay; promoted only via human gate (accumulation layer is eval-gated) | `agents/memory/curated/lessons/<slug>.md` |
|
|
75
|
+
| **Knowledge page (typed)** | Team-shared, lifecycle-typed knowledge grown while working the project — episodic sessions, semantic concepts, procedures on the way to a skill, small decisions | `agents/knowledge/concepts/api-response-shape.md` |
|
|
75
76
|
|
|
76
77
|
## Where to store contexts
|
|
77
78
|
|
|
@@ -81,6 +82,7 @@ agents/settings/contexts/ # Project-wide contexts
|
|
|
81
82
|
| Project-wide or cross-module | `agents/settings/contexts/` |
|
|
82
83
|
| Module-specific | `{module_root}/{Module}/{agent_folder}/settings/contexts/` (resolved via `modules.root_paths` + `modules.agent_folder`; Laravel example: `app/Modules/{Module}/agents/settings/contexts/`) |
|
|
83
84
|
| **Knowledge card** (committed) | `agents/knowledge/<source>.md` — fill from the `knowledge-card` template |
|
|
85
|
+
| **Knowledge page (typed, committed)** | `agents/knowledge/{sessions,concepts,procedures,decisions}/<slug>.md` — fill from the `knowledge-pages` template |
|
|
84
86
|
| **Evidence Report / probe dumps / absence log** (ephemeral) | `agents/memory/knowledge/session/` (gitignored, overwritten each task) |
|
|
85
87
|
| If unsure | Ask the user |
|
|
86
88
|
|
|
@@ -112,6 +114,21 @@ pointer, trust tagging, multi-evidence consistency). See
|
|
|
112
114
|
card-worthy and [`evidence-discipline`](../../agent-src/contexts/execution/evidence-discipline.md)
|
|
113
115
|
for the full model.
|
|
114
116
|
|
|
117
|
+
### Knowledge pages — the typed sibling directories
|
|
118
|
+
|
|
119
|
+
Alongside knowledge cards, `agents/knowledge/{sessions,concepts,procedures,decisions}/`
|
|
120
|
+
holds team-shared knowledge grown **while working the project** — coding
|
|
121
|
+
standards observed, module structure, API endpoint shapes, recurring
|
|
122
|
+
mistakes, small decisions not big enough for an ADR. Fill new pages from the
|
|
123
|
+
[`knowledge-pages`](../../agent-src/templates/contexts/knowledge-pages.md)
|
|
124
|
+
template.
|
|
125
|
+
|
|
126
|
+
**Retrieval protocol — index-first, then grep, then read.** Read
|
|
127
|
+
`agents/knowledge/INDEX.md` first (one line per page, regenerated by
|
|
128
|
+
`src/scripts/generate_knowledge_index.ts`); `grep` keywords second; read the
|
|
129
|
+
specific file third. Never enumerate every knowledge file directly — no
|
|
130
|
+
search infrastructure by design.
|
|
131
|
+
|
|
115
132
|
### Shared vs. project-specific contexts
|
|
116
133
|
|
|
117
134
|
**`.augment/contexts/`** — Part of the shared package. Describes the agent infrastructure:
|
|
@@ -63,16 +63,16 @@ Scripts resolve all paths **skill-relative** (per
|
|
|
63
63
|
— they work from any cwd:
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
-
|
|
66
|
+
./scripts-run <skills-root>/corpus-grounding/scripts/ground search \
|
|
67
67
|
--manifest <skills-root>/<domain-skill>/data/manifest.json \
|
|
68
68
|
"fintech dashboard" [--domain style] [--stack react] \
|
|
69
69
|
[--filter "Severity=HIGH"] [--max-results 3] [--json]
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
./scripts-run <skills-root>/corpus-grounding/scripts/ground ground \
|
|
72
72
|
--manifest <skills-root>/<domain-skill>/data/manifest.json \
|
|
73
73
|
"luxury e-commerce" [--context '{"data_heavy": true}'] [--persist DIR]
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
./scripts-run <skills-root>/corpus-grounding/scripts/ground validate --manifest …
|
|
76
76
|
```
|
|
77
77
|
|
|
78
78
|
`<skills-root>` is wherever skills are deployed (`~/.claude/skills/` for
|
|
@@ -105,6 +105,12 @@ Write:
|
|
|
105
105
|
- **Consequences:** what becomes true, what becomes harder, what
|
|
106
106
|
becomes impossible. At least one of each, or admit that nothing
|
|
107
107
|
becomes harder (rare; verify).
|
|
108
|
+
- **Revisit-if:** the condition that would reopen this decision — new
|
|
109
|
+
evidence class, a changed constraint the decision assumed, or an
|
|
110
|
+
age threshold. A lock recorded without this line reads as permanent
|
|
111
|
+
law instead of a decision under current conditions; see
|
|
112
|
+
[`decision-revisit-gate`](../../rules/decision-revisit-gate.md) for
|
|
113
|
+
what happens when a later change is blocked by it without one.
|
|
108
114
|
|
|
109
115
|
### 5. Wire the supersession chain (if any)
|
|
110
116
|
|
|
@@ -2,17 +2,14 @@
|
|
|
2
2
|
model_tier: high
|
|
3
3
|
name: decision-review
|
|
4
4
|
description: "Use to audit a past architectural decision — did the chosen option hold up, what assumptions drifted, should the ADR be superseded? Backward review only; does not lock new choices."
|
|
5
|
-
source: package
|
|
6
5
|
domain: process
|
|
7
6
|
workspaces:
|
|
8
7
|
- engineering
|
|
9
8
|
packs:
|
|
10
9
|
- analysis-workbench
|
|
11
|
-
lifecycle: active
|
|
12
10
|
trust:
|
|
13
11
|
level: professional
|
|
14
12
|
confidence: medium
|
|
15
|
-
human_review_required: false
|
|
16
13
|
install:
|
|
17
14
|
default: false
|
|
18
15
|
removable: true
|
|
@@ -40,6 +37,11 @@ install:
|
|
|
40
37
|
have contributed to problems.
|
|
41
38
|
- Preparation for a supersession: confirm the old decision actually
|
|
42
39
|
needs replacing before writing a new ADR.
|
|
40
|
+
- Routed here by [`decision-revisit-gate`](../../rules/decision-revisit-gate.md)
|
|
41
|
+
when a beneficial change is blocked by a recorded lock (honest-null
|
|
42
|
+
verdict, "don't relitigate" memory, budget canon, or ADR) — this skill
|
|
43
|
+
supplies the backward-audit procedure that rule's re-evaluation offer
|
|
44
|
+
points to.
|
|
43
45
|
|
|
44
46
|
Do NOT use when:
|
|
45
47
|
|
|
@@ -170,13 +170,16 @@ Regardless of goal, close with three fixed blocks:
|
|
|
170
170
|
## Do NOT
|
|
171
171
|
|
|
172
172
|
- Do NOT force-apply all frameworks at the user's chosen depth — drop ones that add no insight.
|
|
173
|
-
- Do NOT copy text verbatim from the source — always reword for the user's understanding.
|
|
173
|
+
- Do NOT copy text verbatim from the source — always reword for the user's understanding; any exact quote follows `content-quoting-floor` (≤15 words, one quote per source).
|
|
174
|
+
- Do NOT restate a fresh-lookup-class claim (current status, version, price, date) from model memory — verify against a live source or flag it as unverified, per `asking-and-brevity-examples § Volatile-fact freshness`.
|
|
174
175
|
- Do NOT use academic jargon without one-line definitions in the "key concepts" block.
|
|
175
176
|
- Do NOT skip Step 5 — the takeaways + quick win are the load-bearing output, not optional decoration.
|
|
176
177
|
- Do NOT route code reviews, diff stress-tests, or incident debugging through this skill.
|
|
177
178
|
|
|
178
179
|
## Reference modules
|
|
179
180
|
|
|
181
|
+
All 8 framework modules are project-local guidelines under `docs/guidelines/agent-infra/` (full text adopted under the Reference-Guideline Sunset Policy). Each carries an `## ADOPT citation` footer pinning its MIT upstream origin.
|
|
182
|
+
|
|
180
183
|
- [`scqa-framework`](../../../docs/guidelines/agent-infra/scqa-framework.md) — situation / complication / question / answer decomposition.
|
|
181
184
|
- [`5w2h-analysis`](../../../docs/guidelines/agent-infra/5w2h-analysis.md) — completeness check (7 questions).
|
|
182
185
|
- [`critical-thinking`](../../../docs/guidelines/agent-infra/critical-thinking.md) — argument quality / fallacy detection.
|
|
@@ -186,3 +189,5 @@ Regardless of goal, close with three fixed blocks:
|
|
|
186
189
|
- [`systems-thinking`](../../../docs/guidelines/agent-infra/systems-thinking.md) — feedback loops + leverage points.
|
|
187
190
|
- [`six-hats`](../../../docs/guidelines/agent-infra/six-hats.md) — White / Red / Black / Yellow / Green / Blue protocol.
|
|
188
191
|
- [`comparison-matrix`](../../../docs/guidelines/agent-infra/comparison-matrix.md) — cross-source synthesis (L4 only).
|
|
192
|
+
|
|
193
|
+
> **Deprecated — on-demand upstream loading.** Earlier revisions of this skill described loading some modules "on demand from a SHA-pinned URL", backed by an `external_source` frontmatter pin. That capability was **never wired** (no fetcher ever consumed the pin; it was schema-only metadata), so the pin and its `refresh_trigger` / `sunset_criterion` bundle have been **removed** — every module is local, no runtime fetch is needed. If a future revision genuinely needs live upstream content, build an explicit fetch step; do not reintroduce a non-functional metadata pin.
|
|
@@ -169,7 +169,7 @@ corpus. Canon is a gap-filler, never an override of a registered brand value.
|
|
|
169
169
|
product → style → color → landing → typography with decision rules):
|
|
170
170
|
|
|
171
171
|
```bash
|
|
172
|
-
|
|
172
|
+
./scripts-run <skills-root>/corpus-grounding/scripts/ground ground \
|
|
173
173
|
--manifest <skills-root>/design-intelligence/data/manifest.json \
|
|
174
174
|
"<product type + mood + platform>" --json
|
|
175
175
|
```
|
|
@@ -235,7 +235,7 @@ finding classes instead of ad-hoc judgment:
|
|
|
235
235
|
Per-framework Do/Don't corpora (16 stacks) ride the same manifest:
|
|
236
236
|
|
|
237
237
|
```bash
|
|
238
|
-
|
|
238
|
+
./scripts-run <skills-root>/corpus-grounding/scripts/ground search \
|
|
239
239
|
--manifest <skills-root>/design-intelligence/data/manifest.json \
|
|
240
240
|
--stack react "list rerender memo" [--filter "Severity=HIGH"]
|
|
241
241
|
```
|
|
@@ -276,6 +276,9 @@ guidance + docs URLs from here instead of memory.
|
|
|
276
276
|
| Orchestration gates + locks | `directives/ui/{design,review,polish}.py` — never import the engine |
|
|
277
277
|
| WCAG audit method | [`accessibility-auditor`](../accessibility-auditor/SKILL.md) |
|
|
278
278
|
| Token authoring | [`design-tokens`](../design-tokens/SKILL.md) |
|
|
279
|
+
| Lo-fi structure exploration (pre-selection) | [`wireframe`](../wireframe/SKILL.md) — disposable greyscale variants |
|
|
280
|
+
| Multiple hi-fi options (post-selection) | [`design-variations`](../design-variations/SKILL.md) — grounds each variation via this skill |
|
|
281
|
+
| Fixed-canvas slide decks | [`html-deck`](../html-deck/SKILL.md) — own medium, still corpus-grounded |
|
|
279
282
|
|
|
280
283
|
## Gotchas
|
|
281
284
|
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
## How to use
|
|
37
37
|
|
|
38
38
|
1. Select the style through the grounding engine first:
|
|
39
|
-
|
|
39
|
+
`./scripts-run <skills-root>/corpus-grounding/scripts/ground search
|
|
40
40
|
--manifest <skills-root>/design-intelligence/data/manifest.json
|
|
41
41
|
--domain style "<product + mood>"`.
|
|
42
42
|
2. Open the matching spec file and lift its token system (colors,
|
|
@@ -63,17 +63,17 @@ under `dark.semantic.*` overriding the same semantic names (emitted as a
|
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
65
|
# tokens.json → CSS variables (primitives + semantic + components + .dark)
|
|
66
|
-
|
|
66
|
+
./scripts-run <skills-root>/design-tokens/scripts/tokens generate \
|
|
67
67
|
--config tokens.json -o assets/design-tokens.css
|
|
68
68
|
|
|
69
69
|
# tokens.json → Tailwind theme.extend.colors snippet
|
|
70
|
-
|
|
70
|
+
./scripts-run …/tokens generate --config tokens.json --format tailwind
|
|
71
71
|
|
|
72
72
|
# token-discipline lint: hardcoded hex/rgb/px/rem outside token files
|
|
73
|
-
|
|
73
|
+
./scripts-run …/tokens validate --dir src/ [--json]
|
|
74
74
|
|
|
75
75
|
# embeddable inline CSS for standalone HTML artifacts
|
|
76
|
-
|
|
76
|
+
./scripts-run …/tokens embed --tokens assets/design-tokens.css --minimal --style
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
`validate --json` emits findings with `"kind": "token_violation"` — the
|
|
@@ -92,6 +92,12 @@ four-operation split assigns to *rules/linters*, not the corpus).
|
|
|
92
92
|
actually uses.
|
|
93
93
|
2. **Ground the values** — `design-intelligence` query gives the
|
|
94
94
|
WCAG-checked semantic color set + typography pairing for the product.
|
|
95
|
+
No brand and no corpus match (a genuinely from-scratch palette) →
|
|
96
|
+
derive the accent set in `oklch()` with shared lightness and chroma,
|
|
97
|
+
varied hue (`oklch(50% 0.15 250)` / `… 200` / `… 280`) — equal L/C
|
|
98
|
+
keeps the hues perceptually balanced where random hex codes drift in
|
|
99
|
+
saturation; cross-check the result against C1/C5 avoidance before
|
|
100
|
+
locking it in.
|
|
95
101
|
3. **Author `tokens.json`** from the starter: fill primitives, point
|
|
96
102
|
semantics at them, add `dark.semantic` overrides.
|
|
97
103
|
4. **Generate** CSS vars (and the Tailwind snippet when the stack is
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: inherit
|
|
3
|
+
name: design-variations
|
|
4
|
+
description: "Produce 3+ substantively distinct hi-fi design variations — basic to bold, one file with tweak controls — when the user asks for options, alternatives, or \"show me a few takes\"."
|
|
5
|
+
domain: product
|
|
6
|
+
personas: []
|
|
7
|
+
workspaces:
|
|
8
|
+
- engineering
|
|
9
|
+
packs:
|
|
10
|
+
- frontend-design
|
|
11
|
+
trust:
|
|
12
|
+
level: professional
|
|
13
|
+
install:
|
|
14
|
+
removable: true
|
|
15
|
+
execution:
|
|
16
|
+
type: manual
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Design Variations
|
|
20
|
+
|
|
21
|
+
Produce multiple substantively distinct design variations so the user can
|
|
22
|
+
reject what they don't want and combine what they do. One design is one bet;
|
|
23
|
+
three variations surface preferences the user didn't know they had.
|
|
24
|
+
|
|
25
|
+
## When to use
|
|
26
|
+
|
|
27
|
+
- The user asks for options, alternatives, "different takes", "show me a few"
|
|
28
|
+
on hi-fi UI work (screen, component, flow, visual treatment).
|
|
29
|
+
- After a `wireframe` round settled the structure and the user wants styled
|
|
30
|
+
directions on top of it.
|
|
31
|
+
|
|
32
|
+
**When NOT to use:** structure/flow exploration before any styling decision →
|
|
33
|
+
[`wireframe`](../wireframe/SKILL.md) (lo-fi, disposable). Selecting ONE
|
|
34
|
+
grounded direction without generating alternatives →
|
|
35
|
+
[`design-intelligence`](../design-intelligence/SKILL.md). Reviewing an
|
|
36
|
+
existing design → [`design-review`](../design-review/SKILL.md).
|
|
37
|
+
|
|
38
|
+
## Procedure
|
|
39
|
+
|
|
40
|
+
1. **Baseline.** Confirm what is varied (screen / component / flow / visual
|
|
41
|
+
treatment), the existing design context (DESIGN.md, brand tokens, UI kit —
|
|
42
|
+
run [`existing-ui-audit`](../existing-ui-audit/SKILL.md) when the output
|
|
43
|
+
lands in a real codebase, per the `ui-audit-gate` rule), the count
|
|
44
|
+
(default 3, ceiling 6), and the user's priority axis.
|
|
45
|
+
2. **Pick 2–4 axes** to vary across: visual treatment (tone, density, shadow,
|
|
46
|
+
radius, type weight), layout (centered/asymmetric, single/multi-column,
|
|
47
|
+
full-bleed/inset), interaction model (single page vs multi-step, modal vs
|
|
48
|
+
inline), hierarchy (what is primary), tone (minimal/formal/playful/
|
|
49
|
+
editorial), component style. Map axes onto the project's Taste Dials
|
|
50
|
+
(Variance/Motion/Density) where DESIGN.md defines them.
|
|
51
|
+
3. **Spec each variation BEFORE building** — one line per variation naming
|
|
52
|
+
its distinct palette family, type pairing, and layout skeleton. Left
|
|
53
|
+
unspecified, variations converge on one default look; variety must be
|
|
54
|
+
designed, not hoped for. Ground palette/type picks via
|
|
55
|
+
[`design-intelligence`](../design-intelligence/SKILL.md) and emit values
|
|
56
|
+
as tokens per [`design-tokens`](../design-tokens/SKILL.md).
|
|
57
|
+
4. **Build basic → bold.** Variation 1 = by-the-book (matches existing
|
|
58
|
+
patterns); variation 2 = refined (same structure, one or two dimensions
|
|
59
|
+
pushed — often the actual pick); variation 3 = novel (genuinely different
|
|
60
|
+
layout/metaphor/aesthetic, deliberately off-distribution). Cover both
|
|
61
|
+
ends — an all-safe set wastes the round, an all-wild set ignores the brief.
|
|
62
|
+
5. **Substantive, not cosmetic.** Two variations that differ only in button
|
|
63
|
+
color or shadow opacity are one variation — drop and replace. Litmus: the
|
|
64
|
+
user can articulate the difference between any two variations in one
|
|
65
|
+
sentence.
|
|
66
|
+
6. **Present in a single file** with tweak controls — never `v1.html` /
|
|
67
|
+
`v2.html` / `v3.html`. Structure-sharing variants toggle via CSS custom
|
|
68
|
+
properties + a small floating "Tweaks" panel (3–8 controls: color picker,
|
|
69
|
+
font/variant dropdown, density slider, section toggles, copy inputs);
|
|
70
|
+
persist chosen values in `localStorage`. Structurally distinct variants
|
|
71
|
+
render side-by-side with labels. Even unasked, expose 1–2 tweak axes by
|
|
72
|
+
default.
|
|
73
|
+
7. **Caption each variation** (1–2 sentences naming the axis it flexes) and
|
|
74
|
+
**close with a recommendation** — a designer offers an opinion; the user
|
|
75
|
+
decides.
|
|
76
|
+
8. **Quality gate.** Novel ≠ sloppy: run `lint_design_slop` over the emitted
|
|
77
|
+
file (every variation individually passes; a DESIGN.md-declared direction
|
|
78
|
+
suppresses its flags) and honor the outward-artifact hygiene floor (Q13 in
|
|
79
|
+
[`design-antipatterns.md`](../../../docs/guidelines/design-antipatterns.md)) —
|
|
80
|
+
no workspace paths, skill/tool names, or generator traces in the markup.
|
|
81
|
+
Final pass before delivery → [`design-review`](../design-review/SKILL.md).
|
|
82
|
+
|
|
83
|
+
## Output format
|
|
84
|
+
|
|
85
|
+
1. **One HTML/JSX file** containing all variations — side-by-side sections or
|
|
86
|
+
custom-property-driven variants with a floating Tweaks panel (3–8 controls,
|
|
87
|
+
`localStorage`-persisted); no per-variation file scatter.
|
|
88
|
+
2. **Variation spec block** (comment or intro): per variation one line —
|
|
89
|
+
axis flexed, palette family, type pairing, layout skeleton.
|
|
90
|
+
3. **Captions + one recommendation** naming the suggested pick and why, with
|
|
91
|
+
the trade-off of the runner-up.
|
|
92
|
+
4. **Clean slop scan** — `lint_design_slop` output for the file (flags
|
|
93
|
+
resolved or DESIGN.md-justified), no Q13 violations.
|
|
94
|
+
|
|
95
|
+
## Do NOT
|
|
96
|
+
|
|
97
|
+
- Do NOT produce variations that differ only cosmetically (color swap, shadow
|
|
98
|
+
tweak) — replace with a substantive alternative.
|
|
99
|
+
- Do NOT scatter `v1/v2/v3` files — one file, toggleable.
|
|
100
|
+
- Do NOT let variations drift into one house style — spec palette/type/layout
|
|
101
|
+
per variation before building.
|
|
102
|
+
- Do NOT skip the recommendation — presenting options without an opinion
|
|
103
|
+
pushes the decision cost back onto the user.
|
|
104
|
+
- Do NOT invent brand values — consumer brand tokens win
|
|
105
|
+
(`brand-source-of-truth`); the corpus fills gaps only.
|
|
106
|
+
- Do NOT embed system internals (paths, skill/tool names, generator traces)
|
|
107
|
+
in the emitted markup — Q13.
|
|
108
|
+
|
|
109
|
+
## Gotcha
|
|
110
|
+
|
|
111
|
+
- The "novel" variation is where slop concentrates: off-distribution choices
|
|
112
|
+
still pass the antipatterns catalog — deliberate ≠ default. Declare the
|
|
113
|
+
direction in the spec block so `lint_design_slop` gating reads intent.
|
|
114
|
+
- Tweak panels leak into delivery: the panel must be removable (single
|
|
115
|
+
`<script>`/`<aside>` block, clearly marked) so the chosen variant ships
|
|
116
|
+
without exploration chrome.
|
|
117
|
+
- More than 6 variations degrades choice quality — the user can't hold them
|
|
118
|
+
in mind; split into two rounds on different axes instead.
|
|
119
|
+
|
|
120
|
+
## See also
|
|
121
|
+
|
|
122
|
+
- [`wireframe`](../wireframe/SKILL.md) — lo-fi structure exploration before this.
|
|
123
|
+
- [`design-intelligence`](../design-intelligence/SKILL.md) — grounded direction/palette/type selection.
|
|
124
|
+
- [`design-tokens`](../design-tokens/SKILL.md) — token emission for variation values.
|
|
125
|
+
- [`fe-design`](../fe-design/SKILL.md) — production heuristics the by-the-book variation follows.
|
|
126
|
+
- [`design-review`](../design-review/SKILL.md) — final gate before delivery.
|
|
127
|
+
- [`docs/guidelines/design-antipatterns.md`](../../../docs/guidelines/design-antipatterns.md) — catalog + Q13 outward-artifact hygiene.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "design-variations",
|
|
3
|
+
"last_eval": "2026-07-06",
|
|
4
|
+
"description": "5 should-trigger + 5 should-not-trigger. Should-trigger covers hi-fi options/alternatives requests. Should-not-trigger covers near-miss neighbors: wireframe (lo-fi structure exploration), design-intelligence (single grounded direction), design-review (review existing), image generation, and single-implementation feature work.",
|
|
5
|
+
"queries": [
|
|
6
|
+
{"q": "show me 3 different takes on this pricing page", "trigger": true},
|
|
7
|
+
{"q": "give me a few design options for the dashboard header", "trigger": true},
|
|
8
|
+
{"q": "I can't decide on the hero layout — build some alternatives I can compare", "trigger": true},
|
|
9
|
+
{"q": "make this settings screen in a safe version and a bold version", "trigger": true},
|
|
10
|
+
{"q": "let me play with color and density options on this card grid", "trigger": true},
|
|
11
|
+
{"q": "sketch a few rough layout directions for the signup flow before we style anything", "trigger": false, "note": "lo-fi structure exploration → wireframe"},
|
|
12
|
+
{"q": "pick a visual direction and palette for our new SaaS app", "trigger": false, "note": "single grounded direction → design-intelligence"},
|
|
13
|
+
{"q": "review this landing page design for issues", "trigger": false, "note": "review of existing design → design-review"},
|
|
14
|
+
{"q": "generate 3 logo images in Midjourney", "trigger": false, "note": "AI image generation → image-provider-routing / logo-generation"},
|
|
15
|
+
{"q": "build the checkout form component", "trigger": false, "note": "single implementation, no options ask → fe-design / stack executor"}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -40,7 +40,7 @@ Steps at a glance:
|
|
|
40
40
|
5. Write `manifest.yml` with acyclic `dependency_graph` and empty `linear_state`.
|
|
41
41
|
6. Append `<!-- ticket: T-NNN -->` markers back into the roadmap.
|
|
42
42
|
7. (Re)generate `agents/tickets/_registry.yml`.
|
|
43
|
-
8. Run `lint_ticket_buildable
|
|
43
|
+
8. Run `lint_ticket_buildable` until exit 0 (max 3 attempts).
|
|
44
44
|
9. Tell the user the bundle is ready: paste a ticket into Linear/Jira, or have the agent create it via a tracker MCP server (ADR-102 — no API export).
|
|
45
45
|
|
|
46
46
|
### §0 — Locate the roadmap
|
|
@@ -97,7 +97,7 @@ Apply this floor **before** marking any ticket `lite`:
|
|
|
97
97
|
- Any miss → split the ticket further, or escalate to `medium`
|
|
98
98
|
- Architectural / multi-module → `high` (use `adr-create` first)
|
|
99
99
|
|
|
100
|
-
**Gate:** run
|
|
100
|
+
**Gate:** run `./scripts-run src/scripts/lint_ticket_buildable agents/tickets/{slug}/`
|
|
101
101
|
and fix all errors before declaring any ticket `lite`. This is the only
|
|
102
102
|
authoritative check — do not skip it.
|
|
103
103
|
|
|
@@ -154,7 +154,7 @@ If the file does not exist, create it with the `bundles:` root.
|
|
|
154
154
|
### §8 — Run the buildability gate
|
|
155
155
|
|
|
156
156
|
```bash
|
|
157
|
-
|
|
157
|
+
./scripts-run src/scripts/lint_ticket_buildable agents/tickets/{slug}/
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
Fix every reported error. Re-run until exit code 0. Max 3 attempts; if still
|
|
@@ -181,7 +181,7 @@ Do NOT auto-create tracker issues — paste/MCP is the user's call.
|
|
|
181
181
|
|
|
182
182
|
- Implement or invent ticket content not traceable to a roadmap step.
|
|
183
183
|
- Touch `src/scripts/**` — orchestrate; do not reimplement.
|
|
184
|
-
- Mark a ticket `lite` before `lint_ticket_buildable
|
|
184
|
+
- Mark a ticket `lite` before `lint_ticket_buildable` passes.
|
|
185
185
|
- Create a circular `dependency_graph` — verify acyclicity before writing.
|
|
186
186
|
- Auto-create tracker issues — paste/MCP is the user's call (ADR-102, no API export).
|
|
187
187
|
- Reuse T-NNN numbers from another bundle in the same registry.
|
|
@@ -233,6 +233,26 @@ Animate `transform` and `opacity` only. Why: these run on the GPU compositor thr
|
|
|
233
233
|
5. **Loading states** — Skeleton screens preferred over spinners. **Why:** skeletons reduce perceived wait time by showing structure immediately.
|
|
234
234
|
6. **Error recovery** — Clear error messages with suggested actions. **Why:** "something went wrong" gives the user nothing to do; a specific message with a next step reduces support burden.
|
|
235
235
|
|
|
236
|
+
## Craft details — typography & imagery
|
|
237
|
+
|
|
238
|
+
- **`text-wrap: pretty` on body copy** — avoids widows/orphans without manual
|
|
239
|
+
breaks; cheap, no layout risk. (Display headlines: `text-wrap: balance`.)
|
|
240
|
+
- **Honest placeholders over weak assets** — when the real image/illustration
|
|
241
|
+
is missing, use a striped placeholder with a monospace size label
|
|
242
|
+
(`repeating-linear-gradient(45deg, #E5E5E5 0 10px, #F5F5F5 10px 20px)` +
|
|
243
|
+
`product shot (1200×800)`) instead of a hand-drawn SVG or stock-ish filler.
|
|
244
|
+
A placeholder signals "asset needed"; a weak illustration signals nobody
|
|
245
|
+
had the asset. Never Lorem-ipsum copy in review-bound output
|
|
246
|
+
(per `output-discipline`) — use short label-style skeleton copy.
|
|
247
|
+
|
|
248
|
+
## Presenting variants
|
|
249
|
+
|
|
250
|
+
This skill produces ONE refined solution. When the user wants multiple options
|
|
251
|
+
to compare (or a live tweak panel over one design), hand off to
|
|
252
|
+
[`design-variations`](../design-variations/SKILL.md) — it owns the
|
|
253
|
+
basic→bold variation method and the single-file tweak-panel mechanics
|
|
254
|
+
(CSS custom properties + floating "Tweaks" panel + `localStorage`).
|
|
255
|
+
|
|
236
256
|
## Cross-task design memory — read DESIGN.md / PRODUCT.md first
|
|
237
257
|
|
|
238
258
|
Before applying any heuristics from this reference, check the project root
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: inherit
|
|
3
|
+
name: html-deck
|
|
4
|
+
description: "Build a slide presentation as one HTML file — fixed 1920×1080 canvas letterboxed to any viewport, layout-system-first, type floors. Use for deck, slides, presentation, or pitch requests."
|
|
5
|
+
domain: product
|
|
6
|
+
personas: []
|
|
7
|
+
workspaces:
|
|
8
|
+
- engineering
|
|
9
|
+
packs:
|
|
10
|
+
- frontend-design
|
|
11
|
+
trust:
|
|
12
|
+
level: professional
|
|
13
|
+
install:
|
|
14
|
+
removable: true
|
|
15
|
+
execution:
|
|
16
|
+
type: manual
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# HTML Deck
|
|
20
|
+
|
|
21
|
+
Build a slide presentation as a single HTML file with fixed-size slides that
|
|
22
|
+
letterbox to any viewport. A deck is fixed-canvas media (default 1920×1080,
|
|
23
|
+
16:9) — a different medium from responsive UI and from static posters.
|
|
24
|
+
|
|
25
|
+
## When to use
|
|
26
|
+
|
|
27
|
+
- The user asks for a deck, presentation, slides, or a pitch as a web/HTML
|
|
28
|
+
deliverable.
|
|
29
|
+
|
|
30
|
+
**When NOT to use:** static single-image visual art (poster, PNG/PDF
|
|
31
|
+
one-off) → [`canvas-design`](../canvas-design/SKILL.md). Responsive product
|
|
32
|
+
UI → [`fe-design`](../fe-design/SKILL.md) + stack executor. Multiple styled
|
|
33
|
+
options of one screen → [`design-variations`](../design-variations/SKILL.md).
|
|
34
|
+
|
|
35
|
+
## Procedure
|
|
36
|
+
|
|
37
|
+
1. **Discovery.** Confirm: audience (engineers / executives / customers —
|
|
38
|
+
determines tone and density), aspect ratio (16:9 default), slide count vs
|
|
39
|
+
time budget (~1 slide/minute; most decks land at 8–15), tone, source
|
|
40
|
+
material (PRD/doc — read it before sketching), speaker notes (off unless
|
|
41
|
+
requested), and the brand / design system. No brand →
|
|
42
|
+
[`design-intelligence`](../design-intelligence/SKILL.md) direction first.
|
|
43
|
+
A fully specified ask ("5-slide deck for the all-hands from this PRD")
|
|
44
|
+
skips the question round.
|
|
45
|
+
2. **Commit to a layout system before any slide.** 4–6 layout types (cover,
|
|
46
|
+
section header, content, quote/pull-out, comparison two-column, closing/
|
|
47
|
+
CTA); per layout: background, headline size/position, body area, footer
|
|
48
|
+
treatment. 1–2 background colors across the deck (section headers may
|
|
49
|
+
break to a third). Record the system as a comment block at the top of the
|
|
50
|
+
file.
|
|
51
|
+
3. **Start from the deck-shell starter** (`templates/deck-shell.html`,
|
|
52
|
+
skill-local): fixed-canvas scaling + letterboxing, keyboard/tap
|
|
53
|
+
navigation, slide counter, `localStorage` slide-index persistence,
|
|
54
|
+
print-to-PDF CSS. Each slide is a direct child `<section>` with a
|
|
55
|
+
1-indexed `data-screen-label` ("01 Title") so the user can reference
|
|
56
|
+
slides by the counter they see.
|
|
57
|
+
4. **Build slide-by-slide, reveal early.** Show the file at 1–2 slides —
|
|
58
|
+
don't perfect 15 in private. Per slide: one primary message; **type
|
|
59
|
+
floors on a 1080p canvas: body ≥24px (32px+ preferred), headlines
|
|
60
|
+
60–96px+**; tokens from the active brand/design system (precedence per
|
|
61
|
+
`brand-source-of-truth`, emission per
|
|
62
|
+
[`design-tokens`](../design-tokens/SKILL.md)); honest placeholders for
|
|
63
|
+
missing imagery (striped background + monospace size label — see
|
|
64
|
+
[`fe-design § Craft details`](../fe-design/SKILL.md)); cut filler slides
|
|
65
|
+
("Why choose us?", "About this deck") and data that doesn't support the
|
|
66
|
+
slide's point.
|
|
67
|
+
5. **Speaker notes only when requested** — as a toggleable overlay or
|
|
68
|
+
per-slide `<aside hidden>`, never printed.
|
|
69
|
+
6. **Quality gate.** Run `lint_design_slop` over the file; honor the
|
|
70
|
+
outward-artifact hygiene floor (Q13 in
|
|
71
|
+
[`design-antipatterns.md`](../../../docs/guidelines/design-antipatterns.md))
|
|
72
|
+
— no workspace paths, skill/tool names, or generator traces in markup or
|
|
73
|
+
comments; final pass → [`design-review`](../design-review/SKILL.md).
|
|
74
|
+
Verify scaling + navigation + persistence once in a browser before
|
|
75
|
+
delivery.
|
|
76
|
+
|
|
77
|
+
## Output format
|
|
78
|
+
|
|
79
|
+
1. **One self-contained HTML file** built on the deck-shell: fixed-canvas
|
|
80
|
+
`<section>` slides with 1-indexed `data-screen-label`s, letterbox scaling,
|
|
81
|
+
keyboard/tap navigation, slide counter, `localStorage` persistence,
|
|
82
|
+
print-to-PDF CSS.
|
|
83
|
+
2. **Layout-system comment block** at the top of the file naming the 4–6
|
|
84
|
+
layout types and the background-color budget.
|
|
85
|
+
3. **Type-floor compliance** — body ≥24px, headlines 60–96px+ on the 1080p
|
|
86
|
+
canvas; deviations only with a stated reason.
|
|
87
|
+
4. **Clean slop scan + Q13** — `lint_design_slop` findings resolved or
|
|
88
|
+
DESIGN.md-justified; no system internals in the artifact.
|
|
89
|
+
|
|
90
|
+
## Do NOT
|
|
91
|
+
|
|
92
|
+
- Do NOT hand-roll the scaling/navigation — start from the deck-shell
|
|
93
|
+
starter; re-derived viewport math drifts.
|
|
94
|
+
- Do NOT use responsive units/breakpoints inside slides — a deck is
|
|
95
|
+
fixed-canvas; the shell scales the whole stage.
|
|
96
|
+
- Do NOT drop body text below 24px on a 1080p canvas — projector legibility
|
|
97
|
+
is the floor, not a preference.
|
|
98
|
+
- Do NOT pad with filler slides or invented stats — every slide earns its
|
|
99
|
+
place.
|
|
100
|
+
- Do NOT introduce per-slide ad-hoc colors/spacing — the layout system from
|
|
101
|
+
step 2 is the budget.
|
|
102
|
+
- Do NOT embed system internals (paths, skill/tool names, generator traces)
|
|
103
|
+
in the file — Q13.
|
|
104
|
+
|
|
105
|
+
## Gotcha
|
|
106
|
+
|
|
107
|
+
- `localStorage` persistence keys on `location.pathname` — two decks served
|
|
108
|
+
from the same path share a slide index; rename the file per deck or extend
|
|
109
|
+
the key when hosting several decks under one path.
|
|
110
|
+
- Print-to-PDF uses the fixed canvas per page: browsers map it onto the
|
|
111
|
+
paper size — set the print dialog to landscape + "fit to page" or the
|
|
112
|
+
slides clip; test one print preview before shipping a PDF.
|
|
113
|
+
- Emoji in slide headlines is the CP5 tell exactly as in product UI — the
|
|
114
|
+
deck medium doesn't exempt it.
|
|
115
|
+
|
|
116
|
+
## See also
|
|
117
|
+
|
|
118
|
+
- `templates/deck-shell.html` (skill-local) — the canonical shell; copy, don't re-derive.
|
|
119
|
+
- [`canvas-design`](../canvas-design/SKILL.md) — static posters/one-frame art (not decks).
|
|
120
|
+
- [`design-intelligence`](../design-intelligence/SKILL.md) — direction/palette/type grounding.
|
|
121
|
+
- [`design-tokens`](../design-tokens/SKILL.md) / [`brand-to-tokens`](../brand-to-tokens/SKILL.md) — token precedence and emission.
|
|
122
|
+
- [`design-review`](../design-review/SKILL.md) — final review gate.
|
|
123
|
+
- [`docs/guidelines/design-antipatterns.md`](../../../docs/guidelines/design-antipatterns.md) — catalog, CP5, Q13.
|