@event4u/agent-config 14.10.0 → 14.12.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +161 -208
- package/README.md +1 -1
- package/dist/agent-src/commands/design.md +88 -0
- package/dist/agent-src/commands/project/analyze.md +47 -0
- package/dist/agent-src/commands/review/changes.md +67 -6
- package/dist/agent-src/commands/roadmap/create.md +49 -0
- package/dist/agent-src/commands/roadmap/next.md +27 -11
- package/dist/agent-src/commands/roadmap/process-full.md +14 -0
- package/dist/agent-src/commands/video/from-script.md +60 -3
- package/dist/agent-src/commands/video/stitch.md +14 -0
- package/dist/agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -0
- package/dist/agent-src/contexts/execution/evidence-discipline.md +26 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +154 -2
- package/dist/agent-src/rules/active-remediation.md +3 -3
- package/dist/agent-src/rules/code-provenance.md +2 -2
- package/dist/agent-src/rules/context-hygiene.md +13 -33
- package/dist/agent-src/rules/council-availability.md +2 -2
- package/dist/agent-src/rules/decision-revisit-gate.md +3 -1
- package/dist/agent-src/rules/design-fidelity.md +18 -0
- package/dist/agent-src/rules/design-review-after-ui-write.md +2 -2
- package/dist/agent-src/rules/evaluator-independence.md +56 -44
- package/dist/agent-src/rules/fix-what-you-see.md +9 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
- package/dist/agent-src/rules/minimal-safe-diff.md +14 -20
- package/dist/agent-src/rules/missing-skill-recovery.md +13 -1
- package/dist/agent-src/rules/playbook-precedence.md +105 -0
- package/dist/agent-src/rules/recurring-criticism.md +3 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +14 -13
- package/dist/agent-src/rules/scale-discipline.md +24 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +2 -2
- package/dist/agent-src/rules/settings-ask-protocol.md +2 -2
- package/dist/agent-src/rules/ui-audit-gate.md +27 -15
- package/dist/agent-src/rules/untrusted-input-defense.md +2 -2
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +19 -0
- package/dist/agent-src/skills/adr-create/SKILL.md +7 -0
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +33 -0
- package/dist/agent-src/skills/ai-council/references/advanced-modes.md +17 -3
- package/dist/agent-src/skills/ai-council/references/output-and-synthesis.md +31 -0
- package/dist/agent-src/skills/ai-council/references/procedure.md +19 -0
- package/dist/agent-src/skills/alerting-doctrine/SKILL.md +225 -0
- package/dist/agent-src/skills/authz-review/SKILL.md +0 -1
- package/dist/agent-src/skills/blast-radius-analyzer/SKILL.md +32 -0
- package/dist/agent-src/skills/brand/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-asset-generation/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-audit/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-identity/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-strategy/SKILL.md +3 -0
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +3 -0
- package/dist/agent-src/skills/check-refs/SKILL.md +3 -0
- package/dist/agent-src/skills/code-refactoring/SKILL.md +45 -1
- package/dist/agent-src/skills/code-review/SKILL.md +75 -5
- package/dist/agent-src/skills/command-routing/SKILL.md +6 -0
- package/dist/agent-src/skills/command-writing/SKILL.md +35 -0
- package/dist/agent-src/skills/condense-memory/SKILL.md +3 -0
- package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +3 -0
- package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +10 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +3 -0
- package/dist/agent-src/skills/design-intelligence/SKILL.md +3 -0
- package/dist/agent-src/skills/design-intelligence/data/landing.csv +36 -35
- package/dist/agent-src/skills/design-intelligence/data/stacks/threejs.csv +1 -0
- package/dist/agent-src/skills/design-review/SKILL.md +79 -1
- package/dist/agent-src/skills/design-review/references/verification-automation.md +41 -0
- package/dist/agent-src/skills/design-system-capture/SKILL.md +35 -40
- package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +50 -0
- package/dist/agent-src/skills/design-tokens/SKILL.md +3 -0
- package/dist/agent-src/skills/design-variations/SKILL.md +3 -0
- package/dist/agent-src/skills/developer-like-execution/SKILL.md +3 -0
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +3 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +28 -4
- package/dist/agent-src/skills/fe-design/SKILL.md +74 -41
- package/dist/agent-src/skills/fe-design/references/craft-floor.md +52 -0
- package/dist/agent-src/skills/fe-design/references/source-led-port.md +36 -0
- package/dist/agent-src/skills/file-editor/SKILL.md +5 -0
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
- package/dist/agent-src/skills/git-workflow/SKILL.md +3 -0
- package/dist/agent-src/skills/html-deck/SKILL.md +3 -0
- package/dist/agent-src/skills/iconography/SKILL.md +3 -0
- package/dist/agent-src/skills/image-editing/SKILL.md +3 -0
- package/dist/agent-src/skills/image-generation/SKILL.md +3 -0
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +3 -0
- package/dist/agent-src/skills/incident-commander/SKILL.md +10 -0
- package/dist/agent-src/skills/js-library-packaging/SKILL.md +173 -0
- package/dist/agent-src/skills/js-library-packaging/scripts/check_package_surface.ts +270 -0
- package/dist/agent-src/skills/laravel-migration/SKILL.md +3 -0
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +3 -0
- package/dist/agent-src/skills/lint-skills/SKILL.md +3 -0
- package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +3 -0
- package/dist/agent-src/skills/logging-monitoring/SKILL.md +234 -51
- package/dist/agent-src/skills/logo-generation/SKILL.md +3 -0
- package/dist/agent-src/skills/md-language-check/SKILL.md +3 -0
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +149 -0
- package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -0
- package/dist/agent-src/skills/multi-tenancy/SKILL.md +4 -0
- package/dist/agent-src/skills/operational-readiness/SKILL.md +184 -0
- package/dist/agent-src/skills/override-management/SKILL.md +3 -0
- package/dist/agent-src/skills/persona-improvement/SKILL.md +3 -0
- package/dist/agent-src/skills/pest-testing/SKILL.md +3 -0
- package/dist/agent-src/skills/playbook-authoring/SKILL.md +162 -0
- package/dist/agent-src/skills/playwright-testing/SKILL.md +3 -0
- package/dist/agent-src/skills/privacy-review/SKILL.md +3 -0
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +23 -0
- package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -0
- package/dist/agent-src/skills/quality-tools/SKILL.md +5 -0
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +81 -33
- package/dist/agent-src/skills/readme-reviewer/SKILL.md +3 -0
- package/dist/agent-src/skills/readme-writing/SKILL.md +3 -0
- package/dist/agent-src/skills/readme-writing-package/SKILL.md +3 -0
- package/dist/agent-src/skills/receiving-code-review/SKILL.md +2 -2
- package/dist/agent-src/skills/refine-prompt/SKILL.md +3 -0
- package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -0
- package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
- package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +23 -41
- package/dist/agent-src/skills/roadmap-writing/references/follow-up-roadmap-shape.md +47 -0
- package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +22 -6
- package/dist/agent-src/skills/runway-cognition/SKILL.md +3 -0
- package/dist/agent-src/skills/scene-expander/scene-blueprint.schema.yaml +26 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +4 -0
- package/dist/agent-src/skills/server-hardening/SKILL.md +159 -0
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -0
- package/dist/agent-src/skills/skill-management/SKILL.md +3 -0
- package/dist/agent-src/skills/skill-reviewer/SKILL.md +3 -0
- package/dist/agent-src/skills/skill-writing/SKILL.md +6 -0
- package/dist/agent-src/skills/skill-writing/references/procedure.md +24 -2
- package/dist/agent-src/skills/spreadsheet-authoring/SKILL.md +3 -0
- package/dist/agent-src/skills/storybook-workshop/SKILL.md +203 -0
- package/dist/agent-src/skills/storybook-workshop/scripts/story_contrast_floor.ts +134 -0
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +25 -0
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +12 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +1 -1
- package/dist/agent-src/skills/terraform/SKILL.md +3 -0
- package/dist/agent-src/skills/test-driven-development/SKILL.md +1 -1
- package/dist/agent-src/skills/threat-modeling/SKILL.md +0 -3
- package/dist/agent-src/skills/token-optimizer/SKILL.md +3 -0
- package/dist/agent-src/skills/typography-system/SKILL.md +3 -0
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +17 -1
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +3 -0
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -0
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +2 -2
- package/dist/agent-src/skills/wireframe/SKILL.md +3 -0
- package/dist/agent-src/skills/wireframe/references/story-beat-ledger.schema.json +115 -0
- package/dist/agent-src/skills/workspace-link/SKILL.md +131 -0
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/playbook.md +75 -0
- package/dist/agent-src/templates/roadmaps.md +37 -0
- package/dist/agent-src/templates/scripts/check_playbook_invokes.ts +231 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +24 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +216 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +159 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +73 -4
- package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +325 -40
- package/dist/cli/commands/uiAudit.js +221 -0
- package/dist/cli/commands/uiRender.js +206 -0
- package/dist/cli/main.js +22 -1
- package/dist/cli/mcp/content.js +64 -1
- package/dist/cli/mcp/dispatch.js +175 -10
- package/dist/cli/registry.js +3 -0
- package/dist/cli-delegate/{chunk-G23AT6GD.js → chunk-DMSZHXZS.js} +57 -1
- package/dist/cli-delegate/{chunk-77GR3VD4.js → chunk-FF7WAFMR.js} +58 -3
- package/dist/cli-delegate/{chunk-YM4GZDJG.js → chunk-JCW7ZLHK.js} +10 -0
- package/dist/cli-delegate/{chunk-H4VIVD4C.js → chunk-JJA2QEWA.js} +413 -391
- package/dist/cli-delegate/{chunk-PLSG6UL5.js → chunk-K4FFODTS.js} +341 -204
- package/dist/cli-delegate/{chunk-B2ERU2VA.js → chunk-WOKWX5PL.js} +1 -1
- package/dist/cli-delegate/cmd_brand_status.js +8 -6
- package/dist/cli-delegate/cmd_conformance.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +3 -3
- package/dist/cli-delegate/cmd_export.js +4 -4
- package/dist/cli-delegate/cmd_handoff.js +1 -1
- package/dist/cli-delegate/cmd_preflight.js +2 -2
- package/dist/cli-delegate/cmd_prune.js +4 -4
- package/dist/cli-delegate/cmd_session_recycle.js +70 -9
- package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +4 -4
- package/dist/cli-delegate/cmd_uninstall.js +4 -4
- package/dist/cli-delegate/cmd_validate.js +4 -4
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +362 -127
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +4 -4
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +18 -8
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +16 -6
- package/dist/hooks/dispatch.js +2575 -1472
- package/dist/install/install.mjs +800 -708
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +1685 -1250
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/lean_projection_mode.js +40 -0
- package/dist/scripts/_lib/scoped_projection.js +84 -0
- package/dist/scripts/_lib/ui_surface.js +89 -0
- package/dist/scripts/condense.js +6 -10
- package/dist/scripts/project_thin_rules.js +40 -2
- package/dist/server/schemas/settings.js +6 -0
- package/dist/shared/skillRanking.js +159 -0
- package/docs/contracts/provider-lifecycle.md +47 -18
- package/docs/contracts/settings-classes.md +35 -5
- package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +49 -0
- package/docs/guidelines/agent-infra/downstream-changes-mechanics.md +91 -0
- package/docs/guidelines/agent-infra/evaluator-independence-mechanics.md +92 -0
- package/docs/guidelines/agent-infra/minimal-safe-diff-mechanics.md +45 -1
- package/docs/guidelines/agent-infra/roadmap-deferred-resolution-provenance.md +54 -0
- package/docs/guidelines/code-clarity.md +21 -0
- package/docs/guidelines/design-antipatterns.md +4 -2
- package/docs/guidelines/design-asset-discipline.md +38 -0
- package/docs/guidelines/design-fidelity-mechanics.md +45 -29
- package/docs/guidelines/design-handover-extraction.md +35 -5
- package/docs/guidelines/design-modes.md +41 -1
- package/docs/guidelines/monorepo-antipatterns.md +141 -0
- package/docs/guidelines/redundancy-taxonomy.md +180 -0
- package/llms.txt +50 -39
- package/package.json +6 -2
- package/src/agent-src/templates/scripts/check_playbook_invokes.ts +231 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +24 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +216 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +159 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +73 -4
- package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +325 -40
- package/src/config/agent-settings.template.yml +44 -0
- package/src/config/assurance-capability-registry.json +223 -0
- package/src/config/assurance-threshold-budget.json +65 -0
- package/src/config/budgets.yml +19 -0
- package/src/config/ci-local-parity.yml +29 -0
- package/src/config/discovery/prompt-patterns.yml +56 -0
- package/src/config/discovery/unassigned-artefacts.yml +2 -0
- package/src/config/dispatch-economy-metrics.json +4 -2
- package/src/config/estate-count-budget.json +8 -3
- package/src/config/evaluator-budgets.json +14 -14
- package/src/config/gate-coverage.yml +392 -8
- package/src/config/gate-violation-baselines.json +76 -72
- package/src/config/hook-latency-budget.json +1 -0
- package/src/config/hook-token-budget.json +137 -125
- package/src/config/pack-size-budget.json +39 -10
- package/src/config/preamble-payload-budget.json +97 -71
- package/src/config/quorum-attendance-budget.json +12 -4
- package/src/config/routing-coverage-seed.json +29 -0
- package/src/config/rule-activation-census.json +7 -3
- package/src/config/rule-enforcement-baseline.json +0 -1
- package/src/config/rule-stub-ceilings.json +112 -91
- package/src/config/suggestion-capture.json +28 -0
- package/src/config/surface-matrix.yml +21 -2
- package/src/config/web-launch-readiness.json +188 -0
- package/src/scripts/_cli/cmd_doctor.ts +15 -16
- package/src/scripts/_cli/doctor_install_mode.ts +49 -0
- package/src/scripts/_cli/doctor_overrides.ts +154 -0
- package/src/scripts/_dispatch.bash +17 -0
- package/src/scripts/_lib/as_of.ts +412 -0
- package/src/scripts/_lib/exec_evidence.ts +7 -0
- package/src/scripts/_lib/gate_baseline.ts +150 -1
- package/src/scripts/_lib/hook_settings.ts +33 -0
- package/src/scripts/_lib/host_listing_model.ts +192 -0
- package/src/scripts/_lib/lean_projection_mode.ts +44 -0
- package/src/scripts/_lib/mcp_bridge.ts +199 -0
- package/src/scripts/_lib/review_independence.ts +62 -10
- package/src/scripts/_lib/rule_injection.ts +239 -0
- package/src/scripts/_lib/run_checkpoint.ts +54 -1
- package/src/scripts/_lib/scoped_projection.ts +96 -0
- package/src/scripts/_lib/session_register.ts +44 -2
- package/src/scripts/_lib/skill_catalogue.ts +38 -2
- package/src/scripts/_lib/skill_estate.ts +115 -0
- package/src/scripts/_lib/transcript_reads.ts +207 -0
- package/src/scripts/_lib/ui_authority.ts +343 -0
- package/src/scripts/ai-video/adapters/fal.sh +8 -3
- package/src/scripts/ai-video/adapters/gemini-veo.sh +10 -0
- package/src/scripts/ai-video/adapters/higgsfield.sh +10 -2
- package/src/scripts/ai-video/adapters/kling.sh +10 -0
- package/src/scripts/ai-video/adapters/sora.sh +10 -0
- package/src/scripts/ai-video/lib/calibrate-cost.sh +145 -0
- package/src/scripts/ai-video/lib/model-capabilities/README.md +53 -7
- package/src/scripts/ai-video/lib/model-capabilities/comfyui.json +15 -3
- package/src/scripts/ai-video/lib/model-capabilities/fal.json +36 -6
- package/src/scripts/ai-video/lib/model-capabilities/gemini-veo.json +23 -0
- package/src/scripts/ai-video/lib/model-capabilities/higgsfield.json +23 -0
- package/src/scripts/ai-video/lib/model-capabilities/kling.json +23 -0
- package/src/scripts/ai-video/lib/model-capabilities/musetalk.json +8 -2
- package/src/scripts/ai-video/lib/model-capabilities/replicate.json +36 -6
- package/src/scripts/ai-video/lib/model-capabilities/sora.json +45 -0
- package/src/scripts/ai-video/lib/model-capabilities/syncso.json +8 -2
- package/src/scripts/ai-video/lib/parse-blueprint.sh +52 -5
- package/src/scripts/ai-video/lib/resume-scan.sh +92 -3
- package/src/scripts/ai-video/lib/seam-plan.sh +212 -0
- package/src/scripts/ai-video/smoke-trace.sh +450 -2
- package/src/scripts/ai-video/stitch.sh +191 -10
- package/src/scripts/ai-video/test-pipeline.sh +84 -6
- package/src/scripts/ai_council/argument_exhaustion.ts +130 -0
- package/src/scripts/ai_council/cli_agency_bounds.ts +139 -0
- package/src/scripts/ai_council/cli_least_agency_canary.ts +347 -0
- package/src/scripts/ai_council/clients.ts +3 -2
- package/src/scripts/ai_council/consensus.ts +63 -6
- package/src/scripts/ai_council/events_log.ts +46 -1
- package/src/scripts/ai_council/orchestrator.ts +103 -108
- package/src/scripts/ai_council/orchestrator_results.ts +166 -0
- package/src/scripts/ai_council/prompts.ts +12 -5
- package/src/scripts/ai_council/quorum.ts +82 -1
- package/src/scripts/ai_council/quorum_wiring.ts +82 -5
- package/src/scripts/ai_council/stance_tally.ts +22 -0
- package/src/scripts/bench_hook_latency.ts +62 -0
- package/src/scripts/build_proof.ts +12 -1
- package/src/scripts/capture_skill_catalogue.ts +21 -0
- package/src/scripts/check_always_budget.ts +2 -1
- package/src/scripts/check_augmentignore.ts +2 -1
- package/src/scripts/check_beta_review_markers.ts +2 -1
- package/src/scripts/check_bundle_path_leakage.ts +162 -7
- package/src/scripts/check_command_examples.ts +557 -0
- package/src/scripts/check_composite_arming.ts +364 -0
- package/src/scripts/check_corpus_staleness.ts +2 -1
- package/src/scripts/check_council_pin_staleness.ts +3 -1
- package/src/scripts/check_enforcement_coverage.ts +116 -3
- package/src/scripts/check_enforcement_denominator.ts +365 -0
- package/src/scripts/check_estate_count.ts +122 -3
- package/src/scripts/check_gate_coverage.ts +2 -1
- package/src/scripts/check_hook_bundle_freshness.ts +13 -1
- package/src/scripts/check_knowledge_cards.ts +2 -1
- package/src/scripts/check_knowledge_pages.ts +3 -2
- package/src/scripts/check_memory.ts +2 -1
- package/src/scripts/check_no_automerge_key.ts +287 -0
- package/src/scripts/check_pack_conformance_fixture.ts +565 -0
- package/src/scripts/check_preamble_payload_budget.ts +30 -3
- package/src/scripts/check_proposal.ts +2 -1
- package/src/scripts/check_reach_staleness.ts +2 -1
- package/src/scripts/check_release_adjacent_health.ts +2 -1
- package/src/scripts/check_release_pr_shape.ts +5 -0
- package/src/scripts/check_review_schema.ts +34 -1
- package/src/scripts/check_roadmap_trackable.ts +48 -3
- package/src/scripts/check_routing_coverage.ts +352 -0
- package/src/scripts/check_score_contract.ts +505 -0
- package/src/scripts/check_skill_admissions.ts +514 -0
- package/src/scripts/check_source_size_budget.ts +2 -1
- package/src/scripts/check_standing_payload_delta.ts +505 -0
- package/src/scripts/check_trigger_evals.ts +2 -1
- package/src/scripts/check_web_launch_readiness.ts +705 -0
- package/src/scripts/classify_change_risk.ts +281 -0
- package/src/scripts/compute_skill_tiers.ts +186 -0
- package/src/scripts/condense.ts +8 -13
- package/src/scripts/council_attendance_metrics.ts +183 -0
- package/src/scripts/council_cli.ts +10 -8
- package/src/scripts/council_parse_rate.ts +116 -0
- package/src/scripts/derive_playbooks.ts +406 -0
- package/src/scripts/description_route_check.ts +494 -0
- package/src/scripts/design_slop_rules.ts +56 -2
- package/src/scripts/dispatch_r2_reviewer.ts +16 -0
- package/src/scripts/frontend_corpus_hash.ts +116 -0
- package/src/scripts/grade_target_readiness.ts +478 -0
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +124 -16
- package/src/scripts/hooks/concern_registry.ts +6 -0
- package/src/scripts/hooks/design_pass_hook.ts +356 -0
- package/src/scripts/hooks/rtk_wrap_hook.ts +30 -7
- package/src/scripts/hooks/rule_inject_hook.ts +318 -0
- package/src/scripts/hooks/suggestion_capture_hook.ts +368 -0
- package/src/scripts/hot_context_hook.ts +74 -7
- package/src/scripts/install.ts +40 -89
- package/src/scripts/lint_adapter_tier.ts +663 -0
- package/src/scripts/lint_archived_skills.ts +93 -0
- package/src/scripts/lint_budget_ownership.ts +56 -5
- package/src/scripts/lint_deterministic_time.ts +470 -0
- package/src/scripts/lint_framework_leakage.ts +5 -0
- package/src/scripts/lint_handoffs.ts +525 -1
- package/src/scripts/lint_judge_prompt_expectation.ts +155 -0
- package/src/scripts/lint_marketplace.ts +88 -0
- package/src/scripts/lint_media_policy_linkage.ts +140 -1
- package/src/scripts/lint_one_off_age.ts +6 -1
- package/src/scripts/lint_override_kernel_guard.ts +87 -5
- package/src/scripts/lint_roadmap_complexity.ts +56 -0
- package/src/scripts/lint_rule_enforcement_declaration.ts +24 -7
- package/src/scripts/lint_rule_norm_pin.ts +321 -0
- package/src/scripts/lint_skill_trigger_corpus.ts +349 -0
- package/src/scripts/lint_spawn_payload.ts +42 -5
- package/src/scripts/lint_symptom_intake.ts +2 -1
- package/src/scripts/mcp_parity_smoke.ts +30 -4
- package/src/scripts/mcp_render.ts +66 -1
- package/src/scripts/mcp_tool_fingerprint.ts +241 -0
- package/src/scripts/measure_risk_class_drift.ts +140 -0
- package/src/scripts/measure_skill_ranker_baseline.ts +212 -0
- package/src/scripts/media/lib/adapter-common.sh +211 -1
- package/src/scripts/media/lib/adapter-contract.md +74 -6
- package/src/scripts/model_rule_injection.ts +907 -0
- package/src/scripts/pack_install_smoke.ts +363 -0
- package/src/scripts/pr_conflict_census.ts +187 -0
- package/src/scripts/project_thin_rules.ts +45 -2
- package/src/scripts/release.ts +66 -860
- package/src/scripts/release_drill.ts +59 -3
- package/src/scripts/release_env.ts +298 -0
- package/src/scripts/release_publication.ts +720 -0
- package/src/scripts/report_pack_delta.ts +204 -0
- package/src/scripts/roadmap_context.ts +778 -0
- package/src/scripts/schemas/fidelity-measurement-sheet.schema.json +169 -0
- package/src/scripts/schemas/rule.schema.json +24 -2
- package/src/scripts/schemas/skill.schema.json +39 -0
- package/src/scripts/schemas/ui-authority.schema.json +114 -0
- package/src/scripts/select_analysis_mode.ts +112 -0
- package/src/scripts/session_register_hook.ts +29 -3
- package/src/scripts/sessions_cli.ts +67 -3
- package/src/scripts/skill_tools/score_skill_relevance.ts +36 -53
- package/src/scripts/sync_pr_branch.ts +40 -1
- package/src/scripts/token_sink_report.ts +239 -0
- package/src/scripts/trigger_coverage.ts +122 -3
- package/src/scripts/update_counts.ts +7 -3
- package/src/scripts/validate_frontmatter.ts +66 -0
- package/src/server/schemas/settings.ts +10 -0
- package/src/shared/skillRanking.ts +183 -0
- package/dist/agent-src/skills/accessibility-auditor/evals/evals.json +0 -15
- package/dist/agent-src/skills/agent-security-review/evals/triggers.json +0 -52
- package/dist/agent-src/skills/ai-code-blindspots/evals/triggers.json +0 -52
- package/dist/agent-src/skills/analysis-skill-router/evals/evals.json +0 -13
- package/dist/agent-src/skills/brand/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-asset-generation/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-audit/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-identity/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-strategy/evals/triggers.json +0 -17
- package/dist/agent-src/skills/brand-to-tokens/evals/triggers.json +0 -17
- package/dist/agent-src/skills/bug-analyzer/evals/evals.json +0 -13
- package/dist/agent-src/skills/canvas-design/evals/triggers.json +0 -17
- package/dist/agent-src/skills/character-consistency/evals/evals.json +0 -16
- package/dist/agent-src/skills/code-intelligence/evals/triggers.json +0 -52
- package/dist/agent-src/skills/code-review/evals/evals.json +0 -100
- package/dist/agent-src/skills/command-routing/evals/evals.json +0 -14
- package/dist/agent-src/skills/complexity-first-planning/evals/triggers.json +0 -17
- package/dist/agent-src/skills/contract-review/evals/triggers.json +0 -17
- package/dist/agent-src/skills/conventional-commits-writing/evals/evals.json +0 -15
- package/dist/agent-src/skills/corpus-grounding/evals/triggers.json +0 -17
- package/dist/agent-src/skills/dashboard-design/evals/evals.json +0 -16
- package/dist/agent-src/skills/dcf-modeling/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/dcf-modeling/evals/evals.json +0 -20
- package/dist/agent-src/skills/decision-record/evals/evals.json +0 -20
- package/dist/agent-src/skills/decision-record/evals/triggers.json +0 -87
- package/dist/agent-src/skills/design-intelligence/evals/evals.json +0 -14
- package/dist/agent-src/skills/design-intelligence/evals/triggers.json +0 -17
- package/dist/agent-src/skills/design-system-capture/evals/evals.json +0 -15
- package/dist/agent-src/skills/design-tokens/evals/triggers.json +0 -17
- package/dist/agent-src/skills/design-variations/evals/triggers.json +0 -17
- package/dist/agent-src/skills/developer-like-execution/evals/evals.json +0 -16
- package/dist/agent-src/skills/doc-coauthoring/evals/evals.json +0 -16
- package/dist/agent-src/skills/doc-coauthoring/evals/triggers.json +0 -17
- package/dist/agent-src/skills/docx-authoring/evals/triggers.json +0 -52
- package/dist/agent-src/skills/dpa-review/evals/triggers.json +0 -17
- package/dist/agent-src/skills/editorial-calendar/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/editorial-calendar/evals/evals.json +0 -16
- package/dist/agent-src/skills/eloquent/evals/triggers.json +0 -17
- package/dist/agent-src/skills/estimate-ticket/evals/evals.json +0 -16
- package/dist/agent-src/skills/estimate-ticket/evals/output-schema.yml +0 -20
- package/dist/agent-src/skills/estimate-ticket/evals/triggers.json +0 -19
- package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +0 -52
- package/dist/agent-src/skills/existing-ui-audit/evals/triggers.json +0 -47
- package/dist/agent-src/skills/experiment-loop/evals/output-schema.yml +0 -27
- package/dist/agent-src/skills/experiment-loop/evals/triggers.json +0 -17
- package/dist/agent-src/skills/fe-design/evals/triggers.json +0 -55
- package/dist/agent-src/skills/forecasting/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/forecasting/evals/evals.json +0 -20
- package/dist/agent-src/skills/forensics-report/evals/triggers.json +0 -17
- package/dist/agent-src/skills/frontend-render-security/evals/triggers.json +0 -52
- package/dist/agent-src/skills/fundraising-narrative/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/fundraising-narrative/evals/evals.json +0 -16
- package/dist/agent-src/skills/gated-reach/evals/triggers.json +0 -72
- package/dist/agent-src/skills/github-ci/evals/evals.json +0 -25
- package/dist/agent-src/skills/history-design/evals/triggers.json +0 -17
- package/dist/agent-src/skills/html-deck/evals/triggers.json +0 -17
- package/dist/agent-src/skills/humanizer/evals/strip_fixtures.json +0 -57
- package/dist/agent-src/skills/humanizer/evals/triggers.json +0 -17
- package/dist/agent-src/skills/iconography/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-analyser/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-creator/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-editing/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-generation/evals/triggers.json +0 -17
- package/dist/agent-src/skills/image-provider-routing/evals/triggers.json +0 -17
- package/dist/agent-src/skills/incident-commander/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/incident-commander/evals/evals.json +0 -20
- package/dist/agent-src/skills/judge-artifact-completeness/evals/triggers.json +0 -17
- package/dist/agent-src/skills/judge-injection-defense/evals/triggers.json +0 -17
- package/dist/agent-src/skills/judge-synthesis/evals/triggers.json +0 -17
- package/dist/agent-src/skills/launch-readiness/evals/evals.json +0 -21
- package/dist/agent-src/skills/learning-tutor/evals/triggers.json +0 -52
- package/dist/agent-src/skills/legal-intake-triage/evals/triggers.json +0 -17
- package/dist/agent-src/skills/legal-practice-profile/evals/triggers.json +0 -17
- package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +0 -52
- package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +0 -52
- package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +0 -52
- package/dist/agent-src/skills/llm-provider-knowledge/evals/triggers.json +0 -20
- package/dist/agent-src/skills/logging-monitoring/evals/evals.json +0 -16
- package/dist/agent-src/skills/logo-generation/evals/triggers.json +0 -17
- package/dist/agent-src/skills/messaging-architecture/evals/domain-truth.json +0 -16
- package/dist/agent-src/skills/messaging-architecture/evals/evals.json +0 -16
- package/dist/agent-src/skills/nda-triage/evals/triggers.json +0 -17
- package/dist/agent-src/skills/pdf-tools/evals/triggers.json +0 -52
- package/dist/agent-src/skills/perf-feedback-craft/evals/evals.json +0 -16
- package/dist/agent-src/skills/persona-improvement/evals/triggers.json +0 -52
- package/dist/agent-src/skills/php-coder/evals/triggers.json +0 -17
- package/dist/agent-src/skills/prediction-pool-optimizer/evals/triggers.json +0 -21
- package/dist/agent-src/skills/prompt-engineering-image/evals/triggers.json +0 -17
- package/dist/agent-src/skills/prompt-engineering-patterns/evals/evals.json +0 -16
- package/dist/agent-src/skills/prompt-validator/evals/triggers.json +0 -17
- package/dist/agent-src/skills/quality-tools/evals/evals.json +0 -15
- package/dist/agent-src/skills/reasoning-orchestrator/evals/triggers.json +0 -17
- package/dist/agent-src/skills/refine-prompt/evals/evals.json +0 -16
- package/dist/agent-src/skills/refine-ticket/evals/evals.json +0 -16
- package/dist/agent-src/skills/refine-ticket/evals/output-schema.yml +0 -16
- package/dist/agent-src/skills/refine-ticket/evals/triggers.json +0 -17
- package/dist/agent-src/skills/release-comms/evals/evals.json +0 -16
- package/dist/agent-src/skills/rice-prioritization/evals/evals.json +0 -20
- package/dist/agent-src/skills/runway-cognition/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/runway-cognition/evals/evals.json +0 -20
- package/dist/agent-src/skills/scenario-modeling/evals/domain-truth.json +0 -29
- package/dist/agent-src/skills/scenario-modeling/evals/evals.json +0 -20
- package/dist/agent-src/skills/schema-review/evals/triggers.json +0 -17
- package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +0 -52
- package/dist/agent-src/skills/security-maturity-assessment/evals/triggers.json +0 -52
- package/dist/agent-src/skills/skill-writing/evals/triggers.json +0 -17
- package/dist/agent-src/skills/spreadsheet-authoring/evals/triggers.json +0 -47
- package/dist/agent-src/skills/subagent-orchestration/evals/evals.json +0 -60
- package/dist/agent-src/skills/supply-chain-intake/evals/triggers.json +0 -52
- package/dist/agent-src/skills/systematic-debugging/evals/evals.json +0 -20
- package/dist/agent-src/skills/test-case-discovery/evals/triggers.json +0 -52
- package/dist/agent-src/skills/test-driven-development/evals/evals.json +0 -16
- package/dist/agent-src/skills/threat-modeling/evals/evals.json +0 -21
- package/dist/agent-src/skills/typography-system/evals/evals.json +0 -14
- package/dist/agent-src/skills/typography-system/evals/triggers.json +0 -17
- package/dist/agent-src/skills/unit-economics-modeling/evals/domain-truth.json +0 -40
- package/dist/agent-src/skills/unit-economics-modeling/evals/evals.json +0 -24
- package/dist/agent-src/skills/verify-completion-evidence/evals/evals.json +0 -16
- package/dist/agent-src/skills/verify-repair-loop/evals/output-schema.yml +0 -20
- package/dist/agent-src/skills/verify-repair-loop/evals/triggers.json +0 -17
- package/dist/agent-src/skills/vision-articulation/evals/evals.json +0 -16
- package/dist/agent-src/skills/voice-and-tone-design/evals/evals.json +0 -16
- package/dist/agent-src/skills/wireframe/evals/triggers.json +0 -17
- package/dist/agent-src/skills/worktree-lifecycle/evals/evals.json +0 -38
- package/dist/agent-src/skills/worktree-lifecycle/evals/triggers.json +0 -52
- package/dist/cli/agent-config.js.map +0 -1
- package/dist/cli/bash/runBash.js.map +0 -1
- package/dist/cli/commands/commands.js.map +0 -1
- package/dist/cli/commands/config.js.map +0 -1
- package/dist/cli/commands/doctorShell.js.map +0 -1
- package/dist/cli/commands/mcpServer.js.map +0 -1
- package/dist/cli/commands/packs.js.map +0 -1
- package/dist/cli/commands/profiles.js.map +0 -1
- package/dist/cli/commands/recordTriggerEval.js.map +0 -1
- package/dist/cli/commands/rtkDetect.js.map +0 -1
- package/dist/cli/commands/settings.js.map +0 -1
- package/dist/cli/commands/uiServe.js.map +0 -1
- package/dist/cli/commands/versions.js.map +0 -1
- package/dist/cli/commands/workspaces.js.map +0 -1
- package/dist/cli/configRoot.js.map +0 -1
- package/dist/cli/discovery/loadManifest.js.map +0 -1
- package/dist/cli/firstRunNotice.js.map +0 -1
- package/dist/cli/help.js.map +0 -1
- package/dist/cli/initRouting.js.map +0 -1
- package/dist/cli/log/logger.js.map +0 -1
- package/dist/cli/main.js.map +0 -1
- package/dist/cli/mcp/content.js.map +0 -1
- package/dist/cli/mcp/dispatch.js.map +0 -1
- package/dist/cli/mcp/stdio.js.map +0 -1
- package/dist/cli/paths.js.map +0 -1
- package/dist/cli/python/knowledge_ingest.js.map +0 -1
- package/dist/cli/python/workspace_analytics.js.map +0 -1
- package/dist/cli/python/workspace_crypto.js.map +0 -1
- package/dist/cli/python/workspace_documents.js.map +0 -1
- package/dist/cli/python/workspace_drive.js.map +0 -1
- package/dist/cli/python/workspace_drive_health.js.map +0 -1
- package/dist/cli/python/workspace_explain.js.map +0 -1
- package/dist/cli/python/workspace_hosts.js.map +0 -1
- package/dist/cli/python/workspace_inbox.js.map +0 -1
- package/dist/cli/python/workspace_render.js.map +0 -1
- package/dist/cli/python/workspace_roles.js.map +0 -1
- package/dist/cli/python/workspace_secrets.js.map +0 -1
- package/dist/cli/python/workspace_sessions.js.map +0 -1
- package/dist/cli/python/workspace_skills.js.map +0 -1
- package/dist/cli/registry.js.map +0 -1
- package/dist/install/agentSwitchDetection.js.map +0 -1
- package/dist/install/agentSwitchProfile.js.map +0 -1
- package/dist/install/atomic.js.map +0 -1
- package/dist/install/claudePathsPlan.js.map +0 -1
- package/dist/install/conflict.js.map +0 -1
- package/dist/install/detect.js.map +0 -1
- package/dist/install/emit_host_rules_cli.js.map +0 -1
- package/dist/install/globalRuleLayers.js.map +0 -1
- package/dist/install/hostLayerFingerprint.js.map +0 -1
- package/dist/install/partitionEligibility.js.map +0 -1
- package/dist/install/paths.js.map +0 -1
- package/dist/install/plan.js.map +0 -1
- package/dist/install/preflight.js.map +0 -1
- package/dist/install/rtkDetection.js.map +0 -1
- package/dist/install/ruleInScope.js.map +0 -1
- package/dist/install/ruleLayerPartition.js.map +0 -1
- package/dist/install/rule_scope.js.map +0 -1
- package/dist/install/rule_scope_cli.js.map +0 -1
- package/dist/install/selectedTools.js.map +0 -1
- package/dist/install/toolDetection.js.map +0 -1
- package/dist/install/txlog.js.map +0 -1
- package/dist/install/types.js.map +0 -1
- package/dist/install/wizard-plan.js.map +0 -1
- package/dist/install/wizardDismissals.js.map +0 -1
- package/dist/scripts/_lib/agent_settings.js.map +0 -1
- package/dist/scripts/_lib/agent_src.js.map +0 -1
- package/dist/scripts/_lib/claude_builtin_names.js.map +0 -1
- package/dist/scripts/_lib/claude_plugin.js.map +0 -1
- package/dist/scripts/_lib/claude_settings_hooks.js.map +0 -1
- package/dist/scripts/_lib/compile_time_toggles.js.map +0 -1
- package/dist/scripts/_lib/environment_detector.js.map +0 -1
- package/dist/scripts/_lib/host_launch.js.map +0 -1
- package/dist/scripts/_lib/install_layout.js.map +0 -1
- package/dist/scripts/_lib/installed_lock.js.map +0 -1
- package/dist/scripts/_lib/model_tier.js.map +0 -1
- package/dist/scripts/_lib/prune_empty_dirs.js.map +0 -1
- package/dist/scripts/_lib/scoped_projection.js.map +0 -1
- package/dist/scripts/_lib/script_output.js.map +0 -1
- package/dist/scripts/_lib/spawn_env.js.map +0 -1
- package/dist/scripts/_lib/surface_tiers.js.map +0 -1
- package/dist/scripts/_lib/token_count.js.map +0 -1
- package/dist/scripts/_lib/trigger_eval_floors.js.map +0 -1
- package/dist/scripts/_lib/user_global_paths.js.map +0 -1
- package/dist/scripts/ai_council/modes.js.map +0 -1
- package/dist/scripts/ai_council/transport_resolver.js.map +0 -1
- package/dist/scripts/condense.js.map +0 -1
- package/dist/scripts/project_thin_rules.js.map +0 -1
- package/dist/server/app.js.map +0 -1
- package/dist/server/io/atomicMultiWrite.js.map +0 -1
- package/dist/server/io/atomicWrite.js.map +0 -1
- package/dist/server/io/sharedWriteCheck.js.map +0 -1
- package/dist/server/io/substituteTemplate.js.map +0 -1
- package/dist/server/io/yamlIO.js.map +0 -1
- package/dist/server/nicknameResolver.js.map +0 -1
- package/dist/server/port.js.map +0 -1
- package/dist/server/routes/discovery.js.map +0 -1
- package/dist/server/routes/install.js.map +0 -1
- package/dist/server/routes/ping.js.map +0 -1
- package/dist/server/routes/schema.js.map +0 -1
- package/dist/server/routes/settings.js.map +0 -1
- package/dist/server/routes/settingsChanges.js.map +0 -1
- package/dist/server/routes/userMd.js.map +0 -1
- package/dist/server/routes/wizard.js.map +0 -1
- package/dist/server/routes/workspace.js.map +0 -1
- package/dist/server/schemas/settings.js.map +0 -1
- package/dist/server/serverInfo.js.map +0 -1
- package/dist/server/token.js.map +0 -1
- package/dist/server/writeRoot.js.map +0 -1
- package/dist/shared/capabilities.js.map +0 -1
- package/dist/shared/interactiveContext.js.map +0 -1
- package/dist/shared/nicknamePrefill.js.map +0 -1
- package/dist/shared/settingsAsks.js.map +0 -1
- package/dist/shared/settingsCarveOut.js.map +0 -1
- package/dist/shared/settingsClasses.js.map +0 -1
- package/dist/shared/settingsConsent.js.map +0 -1
- package/dist/shared/settingsSurface.js.map +0 -1
- package/dist/shared/userMd/formAdapter.js.map +0 -1
- package/dist/shared/userMd/schema.js.map +0 -1
- package/dist/shared/userMd/utils.js.map +0 -1
- package/dist/ui/assets/index-Cxgy63kz.js.map +0 -1
- package/src/scripts/_lib/adr_frontmatter.test.ts +0 -365
- package/src/scripts/_lib/adversarial_council_gate.test.ts +0 -112
- package/src/scripts/_lib/adversarial_reconcile.test.ts +0 -197
- package/src/scripts/_lib/auto_dispatch.corpus.test.ts +0 -150
- package/src/scripts/_lib/secret_detector.test.ts +0 -108
- package/src/scripts/_lib/secret_detector_adversarial.test.ts +0 -116
- package/src/scripts/_lib/untrusted_content.test.ts +0 -175
- package/src/scripts/check_secret_leak.test.ts +0 -90
- package/src/scripts/design_slop_rules.test.ts +0 -239
- package/src/scripts/self_review_gate.test.ts +0 -296
- package/src/shared/capabilities.test.ts +0 -43
|
@@ -22,6 +22,16 @@ dispatching this?**
|
|
|
22
22
|
|---|---|---|
|
|
23
23
|
| A ticketed run — the UI directive set is dispatching | `directives/ui/*` | a reference it cites |
|
|
24
24
|
| Anything else — "build me the page", "improve this form", "implement the approved design" | **you, in this turn** | the executor |
|
|
25
|
+
| A renderer axis is in play — WebGL / Three.js / canvas / scroll-scrubbed video | **still you** — the renderer is a grounding question, not a second executor | the executor, grounded via `search_stack` |
|
|
26
|
+
|
|
27
|
+
The third row is an **axis**, not an owner. Renderer selection resolves through
|
|
28
|
+
machinery that already exists: `search_stack` in
|
|
29
|
+
[`corpus-grounding`](../corpus-grounding/SKILL.md)
|
|
30
|
+
(`scripts/decision_engine.ts`), whose stack corpus carries `threejs.csv` among
|
|
31
|
+
its stacks, read beside the register in
|
|
32
|
+
[`design-intelligence`](../design-intelligence/references/context-and-registers.md)
|
|
33
|
+
§ Register. No second frontend executor is declared, and none is needed: a
|
|
34
|
+
renderer changes what you ground against, never who writes the UI.
|
|
25
35
|
|
|
26
36
|
Outside the engine, nothing else owns the design quality of a UI write. Reading
|
|
27
37
|
this skill and then writing the UI from priors is the failure it exists to
|
|
@@ -65,42 +75,36 @@ else runs the loop.
|
|
|
65
75
|
artifact's own markup/CSS/JS is stack-compatible, adapt **that code**;
|
|
66
76
|
re-deriving it from scratch is a deviation needing confirmation
|
|
67
77
|
(`design-fidelity-mechanics` § Adopt the code).
|
|
68
|
-
5. **Review** — run [`design-review`](../design-review/SKILL.md)
|
|
69
|
-
it done, and scope the verdict honestly: render-scoped when
|
|
70
|
-
it, otherwise explicitly static-scoped, naming which checks
|
|
71
|
-
"Looks good" with neither scope named is a verdict without
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
state, and a sticky header on anything long enough to scroll.
|
|
99
|
-
11. **No placeholder microcopy ships.** Lorem ipsum, `TODO`, and
|
|
100
|
-
`[Your text here]` are unfinished output, not drafts.
|
|
101
|
-
|
|
102
|
-
Before proposing a direction, run the anti-slop scan named under
|
|
103
|
-
[Anti-slop discipline](#anti-slop-discipline) below.
|
|
78
|
+
5. **Review, then re-enter** — run [`design-review`](../design-review/SKILL.md)
|
|
79
|
+
before calling it done, and scope the verdict honestly: render-scoped when
|
|
80
|
+
you can render it, otherwise explicitly static-scoped, naming which checks
|
|
81
|
+
actually ran. "Looks good" with neither scope named is a verdict without
|
|
82
|
+
evidence. Findings → fix them and **re-enter step 5**, at most **2 rounds**,
|
|
83
|
+
and **stop early on a null**: a round that produces **no new finding** ends
|
|
84
|
+
the loop, and a round that produces only findings the provided artifact
|
|
85
|
+
already covers produces no new finding. At the 2-round ceiling with findings
|
|
86
|
+
still open, stop and hand the remaining list back — ship-as-is or abort is
|
|
87
|
+
the user's call, never another silent pass. Judgement alone never buys a
|
|
88
|
+
third round.
|
|
89
|
+
|
|
90
|
+
The ceiling is **2**, the same number the engine enforces
|
|
91
|
+
(`directives/ui/polish.ts`, `POLISH_CEILING`), so the ad-hoc path and the
|
|
92
|
+
ticketed path bound the loop identically rather than by two conventions that
|
|
93
|
+
can drift. Fixtures: `daf-adhoc-converges` (round 2 is a null, loop ends) and
|
|
94
|
+
`daf-adhoc-ceiling` (findings remain at the ceiling, loop hands back).
|
|
95
|
+
|
|
96
|
+
### The floors — pulled immediately before the write
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
PULL references/craft-floor.md IMMEDIATELY BEFORE THE WRITE, NOT AT SKILL LOAD.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Twelve universal floors that do not vary by mode, register, intent or stack.
|
|
103
|
+
They were inline here until the delivery point moved: a floor read at skill-load
|
|
104
|
+
time can be a compaction away from the write it governs (`ADR-227`).
|
|
105
|
+
|
|
106
|
+
One precedence rule stays here because it is authority, not craft: **the audit
|
|
107
|
+
outranks every heuristic.** Say `[audit override]` when it does.
|
|
104
108
|
|
|
105
109
|
## Positioning — reference inside the engine, executor outside it
|
|
106
110
|
|
|
@@ -212,13 +216,42 @@ When this skill's content is folded into a design brief or review:
|
|
|
212
216
|
- Heuristics in this reference apply across stacks; do not promote them to project rules without checking the audit.
|
|
213
217
|
- Mobile-first is not optional — every layout must work on 320px width.
|
|
214
218
|
|
|
219
|
+
## Read the authority object — never re-infer it
|
|
220
|
+
|
|
221
|
+
Read the resolved `ui_authority`
|
|
222
|
+
([contract](../../../docs/contracts/ui-authority.md)) before the loop:
|
|
223
|
+
`surface_mode`, `register`, `change_intent`, `reference_maturity`,
|
|
224
|
+
`constraints`. This skill is a **declared consumer** — a second decision table
|
|
225
|
+
beside the object is a drift surface, so do not re-derive any field.
|
|
226
|
+
|
|
227
|
+
`surface_mode` sets density, hierarchy and expressiveness only, per
|
|
228
|
+
[`design-modes`](../../../docs/guidelines/design-modes.md) § The second axis.
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
QUALITY FLOORS DO NOT VARY BY SURFACE MODE.
|
|
232
|
+
A FLOOR THAT MOVES WITH THE MODE IS A PREFERENCE WEARING A FLOOR'S NAME.
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### The source-led path
|
|
236
|
+
|
|
237
|
+
`reference_maturity: runnable-artifact` → the artifact's own markup, CSS and JS
|
|
238
|
+
is the data basis; adapting it is the **default** and a from-scratch
|
|
239
|
+
re-derivation is a deviation. Sort every mechanic into `honoured` / `translated`
|
|
240
|
+
/ `flagged`; one present, absent and unflagged is a **silent drop**, target zero.
|
|
241
|
+
Procedure and the vanishing-mechanic classes:
|
|
242
|
+
[`references/source-led-port.md`](references/source-led-port.md).
|
|
243
|
+
|
|
244
|
+
Maturity is not decided here — it arrives on the authority object, and per-value
|
|
245
|
+
provenance belongs to `road-to-frontend-fidelity-calibration` Phases 0 and 2.
|
|
246
|
+
|
|
215
247
|
## Anti-slop discipline
|
|
216
248
|
|
|
217
|
-
Before proposing
|
|
218
|
-
[`
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
249
|
+
Before proposing a direction, scan the Visual (V1–V7) and Layout (L1–L8)
|
|
250
|
+
sections of [`design-antipatterns`](../../../docs/guidelines/design-antipatterns.md).
|
|
251
|
+
On a match, choose differently or invoke the entry's own override condition in
|
|
252
|
+
the brief — every entry has one, and they are register-scoped. The Q* floors are
|
|
253
|
+
in [`references/craft-floor.md`](references/craft-floor.md) instead of here, so
|
|
254
|
+
they arrive at the write rather than at skill load.
|
|
222
255
|
|
|
223
256
|
## Do NOT
|
|
224
257
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Craft floor — load this immediately before the write
|
|
2
|
+
|
|
3
|
+
Universal floors. They do not vary by surface mode, register, change intent or
|
|
4
|
+
stack. Taste and direction stay mode-scoped in
|
|
5
|
+
[`fe-design`](../SKILL.md); nothing on this page is a preference.
|
|
6
|
+
|
|
7
|
+
**Why this is a separate page rather than inline.** The skill body used to carry
|
|
8
|
+
these inline, on the argument that "loaded" should mean the content is in
|
|
9
|
+
context. That argument is kept and the delivery point moved: a floor read at
|
|
10
|
+
*skill-load* time can be many turns and a compaction away from the write it
|
|
11
|
+
governs, and `ADR-227` records that a path-scoped carrier is not re-injected
|
|
12
|
+
after `/compact`. This page is pulled **immediately before the write**, which is
|
|
13
|
+
the moment the floor has to be present. Same content, later delivery.
|
|
14
|
+
|
|
15
|
+
## The floors
|
|
16
|
+
|
|
17
|
+
1. **Reuse tokens, never raw values.** A hex, font or px literal where the audit
|
|
18
|
+
found a token is off-brand by construction.
|
|
19
|
+
2. **All five states are designed.** `empty` is a helpful message, not a blank
|
|
20
|
+
region. `loading` prefers a skeleton over a spinner — it shows structure, so
|
|
21
|
+
it reads as faster. `error` says what to do next.
|
|
22
|
+
3. **Labels are always visible.** No placeholder-only inputs.
|
|
23
|
+
4. **Validate on blur and on submit**, never on every keystroke. The message
|
|
24
|
+
goes below the field and is specific.
|
|
25
|
+
5. **Mobile-first, and 320 px actually works.** Default styles are the small
|
|
26
|
+
viewport; complexity is added at larger breakpoints, never removed at smaller
|
|
27
|
+
ones. `agent-config ui:render` captures 320 px so this is measurable rather
|
|
28
|
+
than asserted.
|
|
29
|
+
6. **Accessibility minimums are non-negotiable.** 4.5:1 contrast for text (3:1
|
|
30
|
+
large), every interactive element reachable by Tab, a visible focus ring,
|
|
31
|
+
semantic elements over `div`, and an `aria-label` wherever there is no
|
|
32
|
+
visible text.
|
|
33
|
+
7. **Every action gets feedback.** Users read silence as failure.
|
|
34
|
+
8. **Prefer undo over a confirmation dialog.** Confirmations get clicked
|
|
35
|
+
through; an undo affordance actually protects the user.
|
|
36
|
+
9. **Tables:** numbers right-aligned, text left-aligned, a designed empty state,
|
|
37
|
+
and a sticky header on anything long enough to scroll.
|
|
38
|
+
10. **No placeholder microcopy ships.** Lorem ipsum, `TODO` and
|
|
39
|
+
`[Your text here]` are unfinished output, not drafts.
|
|
40
|
+
11. **A default font pick is declared or changed.** Inter, Roboto, DM Sans,
|
|
41
|
+
Geist, Space Grotesk and Instrument Serif are the AI defaults. In the
|
|
42
|
+
product register "one reliable family" is a complete reason — but state it.
|
|
43
|
+
An undeclared pick is an undeclared choice (T7).
|
|
44
|
+
12. **Zero silent drops.** A mechanic present in a supplied source and absent
|
|
45
|
+
from the output, with no `flagged` entry, is a silent drop.
|
|
46
|
+
|
|
47
|
+
## What is NOT on this page
|
|
48
|
+
|
|
49
|
+
Density, hierarchy, expressiveness, palette character, type personality,
|
|
50
|
+
motion register. Those are surface-mode and register decisions and they live in
|
|
51
|
+
`fe-design`. Putting them here would make a preference look like a floor, which
|
|
52
|
+
is the failure this split exists to prevent.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Source-led port — adopt the mechanics, do not re-derive them
|
|
2
|
+
|
|
3
|
+
Pulled when `ui_authority.reference_maturity` is `runnable-artifact`. Contract:
|
|
4
|
+
[`ui-authority`](../../../../../docs/contracts/ui-authority.md).
|
|
5
|
+
|
|
6
|
+
When `reference_maturity` is `runnable-artifact`, the artifact's own markup, CSS
|
|
7
|
+
and JS is the data basis and adapting it is the DEFAULT. A from-scratch
|
|
8
|
+
re-derivation is a deviation and needs the same confirmation as a swapped
|
|
9
|
+
control (per [`design-fidelity`](../../rules/design-fidelity.md)).
|
|
10
|
+
|
|
11
|
+
Account for every mechanic the source carries, in the engine's own vocabulary
|
|
12
|
+
(`COVERAGE_BUCKETS`, shared rather than copied — `agent-config ui:audit`
|
|
13
|
+
re-exports it):
|
|
14
|
+
|
|
15
|
+
- **`honoured`** — carried across intact.
|
|
16
|
+
- **`translated`** — expressed differently in the target stack, same observable
|
|
17
|
+
behaviour. Name the substitution.
|
|
18
|
+
- **`flagged`** — cannot be carried; say so explicitly.
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
A MECHANIC THAT IS PRESENT IN THE SOURCE AND ABSENT FROM THE OUTPUT WITH NO
|
|
22
|
+
`flagged` ENTRY IS A SILENT DROP. TARGET: ZERO.
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`container-type` / `@container`, `clamp()` type scales, `:has()` state
|
|
26
|
+
selectors, `IntersectionObserver` reveals and view transitions are the classes
|
|
27
|
+
that vanish most often, because each one *looks* like decoration and is
|
|
28
|
+
actually behaviour. `tests/eval/frontend-corpus/near-miss/artifact-source-not-rederived`
|
|
29
|
+
is the pinned case: three mechanics, and an output that silently becomes a plain
|
|
30
|
+
media-query grid fails it.
|
|
31
|
+
|
|
32
|
+
**Maturity itself is not decided here.** `reference_maturity` arrives on the
|
|
33
|
+
authority object, and per-value provenance for a comp belongs to
|
|
34
|
+
`road-to-frontend-fidelity-calibration` Phases 0 and 2. This skill adds no
|
|
35
|
+
second maturity discriminator.
|
|
36
|
+
|
|
@@ -3,6 +3,11 @@ model_tier: lite
|
|
|
3
3
|
name: file-editor
|
|
4
4
|
description: "Use when opening edited files in the user's IDE. Reads settings from .agent-settings.yml to determine IDE and whether auto-open is enabled."
|
|
5
5
|
domain: process
|
|
6
|
+
scope:
|
|
7
|
+
write:
|
|
8
|
+
- pattern: "**"
|
|
9
|
+
access: "write"
|
|
10
|
+
verification_reason: "the write target IS the caller's argument — this skill edits whatever path it is pointed at, so its scope is the tree by construction. A narrower glob would be false, not tighter."
|
|
6
11
|
execution:
|
|
7
12
|
type: assisted
|
|
8
13
|
handler: shell
|
|
@@ -61,7 +61,7 @@ or [`fix-pr-comments`](../../commands/fix-pr-comments.md) instead.
|
|
|
61
61
|
### 2. Verify readiness
|
|
62
62
|
|
|
63
63
|
Run the end-of-work gate before presenting any options — see
|
|
64
|
-
[`verify-
|
|
64
|
+
[`verify-completion-evidence`](../verify-completion-evidence/SKILL.md).
|
|
65
65
|
Steps 1–3 run only when `quality.local_auto_run: true`; under the
|
|
66
66
|
default (`false` / missing) skip them without asking — the user runs
|
|
67
67
|
quality tools manually, remote CI on the PR is the authoritative gate,
|
|
@@ -226,7 +226,7 @@ After the chosen option completes, report:
|
|
|
226
226
|
|
|
227
227
|
## When to hand over to another skill / command
|
|
228
228
|
|
|
229
|
-
* Final pre-merge verification → [`verify-
|
|
229
|
+
* Final pre-merge verification → [`verify-completion-evidence`](../verify-completion-evidence/SKILL.md)
|
|
230
230
|
* Rebasing the stack before PR → [`prepare-for-review`](../../commands/prepare-for-review.md)
|
|
231
231
|
* Writing the commit for any last-minute tweaks →
|
|
232
232
|
[`commit`](../../commands/commit.md),
|
|
@@ -3,6 +3,9 @@ model_tier: medium
|
|
|
3
3
|
name: git-workflow
|
|
4
4
|
description: "Use when working with Git — branch naming, commit messages, PR creation, rebasing, or the code review process — even when the user says 'push this' or 'merge the branch' without naming Git."
|
|
5
5
|
domain: process
|
|
6
|
+
scope:
|
|
7
|
+
write: []
|
|
8
|
+
verification_reason: "execution.handler is internal, so this skill spawns no subprocess — writes happen through the agent's declared allowed_tools. No command can prove a scope the skill never executes."
|
|
6
9
|
execution:
|
|
7
10
|
type: assisted
|
|
8
11
|
handler: internal
|
|
@@ -12,6 +12,9 @@ trust:
|
|
|
12
12
|
level: professional
|
|
13
13
|
install:
|
|
14
14
|
removable: true
|
|
15
|
+
scope:
|
|
16
|
+
write: []
|
|
17
|
+
verification_reason: "execution declares no handler, so this skill runs nothing of its own — every write is the calling agent's, under the rules that govern it. No command can prove a scope the skill never executes."
|
|
15
18
|
execution:
|
|
16
19
|
type: manual
|
|
17
20
|
---
|
|
@@ -12,6 +12,9 @@ trust:
|
|
|
12
12
|
level: professional
|
|
13
13
|
install:
|
|
14
14
|
removable: true
|
|
15
|
+
scope:
|
|
16
|
+
write: []
|
|
17
|
+
verification_reason: "execution declares no handler, so this skill runs nothing of its own — every write is the calling agent's, under the rules that govern it. No command can prove a scope the skill never executes."
|
|
15
18
|
execution:
|
|
16
19
|
type: manual
|
|
17
20
|
---
|
|
@@ -12,6 +12,9 @@ trust:
|
|
|
12
12
|
level: experimental
|
|
13
13
|
install:
|
|
14
14
|
removable: true
|
|
15
|
+
scope:
|
|
16
|
+
write: []
|
|
17
|
+
verification_reason: "execution declares no handler, so this skill runs nothing of its own — every write is the calling agent's, under the rules that govern it. No command can prove a scope the skill never executes."
|
|
15
18
|
execution:
|
|
16
19
|
type: manual
|
|
17
20
|
---
|
|
@@ -12,6 +12,9 @@ trust:
|
|
|
12
12
|
level: experimental
|
|
13
13
|
install:
|
|
14
14
|
removable: true
|
|
15
|
+
scope:
|
|
16
|
+
write: []
|
|
17
|
+
verification_reason: "execution declares no handler, so this skill runs nothing of its own — every write is the calling agent's, under the rules that govern it. No command can prove a scope the skill never executes."
|
|
15
18
|
execution:
|
|
16
19
|
type: manual
|
|
17
20
|
---
|
|
@@ -12,6 +12,9 @@ trust:
|
|
|
12
12
|
level: experimental
|
|
13
13
|
install:
|
|
14
14
|
removable: true
|
|
15
|
+
scope:
|
|
16
|
+
write: []
|
|
17
|
+
verification_reason: "execution declares no handler, so this skill runs nothing of its own — every write is the calling agent's, under the rules that govern it. No command can prove a scope the skill never executes."
|
|
15
18
|
execution:
|
|
16
19
|
type: manual
|
|
17
20
|
---
|
|
@@ -143,3 +143,13 @@ Post-mortem owner: <role>
|
|
|
143
143
|
- Do NOT close an incident without a post-mortem owner assigned.
|
|
144
144
|
- Do NOT edit the timeline after the fact; corrections are new
|
|
145
145
|
entries.
|
|
146
|
+
|
|
147
|
+
## See also
|
|
148
|
+
|
|
149
|
+
- [`alerting-doctrine`](../alerting-doctrine/SKILL.md) — what earned the page
|
|
150
|
+
that opened this incident, and the runbook contract the first responder reads.
|
|
151
|
+
A page arrives with an owner, a runbook and a first diagnostic step; if it did
|
|
152
|
+
not, that is a configuration defect to record in the post-mortem.
|
|
153
|
+
- [`logging-monitoring`](../logging-monitoring/SKILL.md) — the signal posture the
|
|
154
|
+
incident is being diagnosed through, and why a `proposed` threshold is not a
|
|
155
|
+
breach.
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: js-library-packaging
|
|
4
|
+
description: "Use when a JavaScript/TypeScript package is consumed by another package — exports map, peer vs. direct dependencies, files allow-list, and whether it should be built at all."
|
|
5
|
+
domain: engineering
|
|
6
|
+
workspaces:
|
|
7
|
+
- engineering
|
|
8
|
+
packs:
|
|
9
|
+
- engineering-base
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# js-library-packaging
|
|
13
|
+
|
|
14
|
+
> **Pack placement.** `engineering-base`. The step asked for it to be *suggested by* the
|
|
15
|
+
> `react` and `typescript` packs, and the skill schema carries no `suggested_by` key — so the
|
|
16
|
+
> intent is recorded here rather than expressed in frontmatter that would fail validation.
|
|
17
|
+
> A React or TypeScript consumer receives this skill through `engineering-base`, which both
|
|
18
|
+
> of those packs require.
|
|
19
|
+
|
|
20
|
+
The JavaScript twin of [`composer-packages`](../composer-packages/SKILL.md). A component is
|
|
21
|
+
a file; a **library** is a package with a public surface, and that surface is declared in
|
|
22
|
+
`package.json` rather than inferred. Most of the failures below are silent at author time
|
|
23
|
+
and loud at the consumer's — which is why the surface is read, not assumed.
|
|
24
|
+
|
|
25
|
+
## The Iron Law
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
`react` AND `react-dom` ARE peerDependencies. NEVER dependencies.
|
|
29
|
+
`types` IS THE FIRST KEY OF EVERY CONDITIONS OBJECT.
|
|
30
|
+
DECIDE buildable-VS-source-consumed BEFORE WRITING THE EXPORTS MAP.
|
|
31
|
+
NEVER HAND-BUMP A VERSION.
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## When to use
|
|
35
|
+
|
|
36
|
+
A package in the repository is imported by another package, or is about to be published:
|
|
37
|
+
an `exports` map is being written or changed, a hook fails at runtime with *"invalid hook
|
|
38
|
+
call"*, an install fails on a `workspace:` range, a release needs cutting, or the
|
|
39
|
+
buildable-vs-source question has not been answered yet.
|
|
40
|
+
|
|
41
|
+
## Procedure
|
|
42
|
+
|
|
43
|
+
1. **Answer buildable-vs-source-consumed FIRST.** It determines the exports map, the `files`
|
|
44
|
+
list, and whether a build step exists at all — deciding it after writing the map means
|
|
45
|
+
rewriting the map.
|
|
46
|
+
- **Source of truth:** is the package published to a registry, or only consumed inside
|
|
47
|
+
this workspace?
|
|
48
|
+
- **Verify:** the exports targets all point into one of the two worlds (`src/` or the
|
|
49
|
+
build directory), never a mix.
|
|
50
|
+
2. **Read the surface rather than asserting it.** Run the check below over the package root.
|
|
51
|
+
- **Source of truth:** `package.json` — `exports`, `dependencies`, `peerDependencies`,
|
|
52
|
+
`files`, `private`, `publishConfig`.
|
|
53
|
+
- **Verify:** zero `error`-severity findings.
|
|
54
|
+
3. **Fix peer placement before anything else.** A library carrying `react` in
|
|
55
|
+
`dependencies` gives the consumer a second copy of React.
|
|
56
|
+
- **Verify:** `react` and `react-dom` appear under `peerDependencies` only.
|
|
57
|
+
4. **Order the conditions.** `types` first, then `import` / `require`.
|
|
58
|
+
- **Verify:** the check reports no `types-not-first`.
|
|
59
|
+
5. **Cut the release through the repository's own mechanism** — never by editing a version
|
|
60
|
+
field. See § Release.
|
|
61
|
+
- **Verify:** the version change is produced by the tool the repository already carries.
|
|
62
|
+
|
|
63
|
+
## Read the surface
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
check_package_surface <library-root> [<library-root> …]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
`scripts/check_package_surface.ts` beside this skill. Deterministic, JSON on stdout, no
|
|
70
|
+
network and no subprocess. It reports:
|
|
71
|
+
|
|
72
|
+
| Code | Severity | Why |
|
|
73
|
+
|---|---|---|
|
|
74
|
+
| `peer-as-dependency` | error | two copies of React in one tree break hooks at runtime, with a message that names neither package |
|
|
75
|
+
| `export-target-missing` | error | the manifest promises a file the package does not ship |
|
|
76
|
+
| `no-exports-map` | warn | `main`/`module` without `exports` — the entry point resolves by bundler convention, not by declaration |
|
|
77
|
+
| `types-not-first` | warn | conditions match in declaration order, so a later `types` is never seen and the package silently ships untyped |
|
|
78
|
+
| `workspace-range-publishable` | warn | a `workspace:` range does not resolve outside the workspace; published, the consumer's install fails |
|
|
79
|
+
|
|
80
|
+
**It classifies from the declared export targets, never from a directory name.** A package
|
|
81
|
+
directory called `ui-lib-vite` is not evidence about Vite, and one called `buildable` is not
|
|
82
|
+
evidence that anything builds. A **mixed** declaration is reported as `undeclared` rather
|
|
83
|
+
than resolved to a guess — declaring both is the ambiguity worth surfacing.
|
|
84
|
+
|
|
85
|
+
**What it does not do:** it never compiles and never runs a bundler, so it cannot tell you
|
|
86
|
+
the declared layout is producible. A checker that grew a parser would report compile errors
|
|
87
|
+
as packaging errors, and the two have different fixes.
|
|
88
|
+
|
|
89
|
+
## Buildable vs. source-consumed
|
|
90
|
+
|
|
91
|
+
| | source-consumed | buildable |
|
|
92
|
+
|---|---|---|
|
|
93
|
+
| exports point at | `src/` | the build directory |
|
|
94
|
+
| build step | none | one, and it must run before publish |
|
|
95
|
+
| `files` | not needed (nothing published) | the build directory, as an allow-list |
|
|
96
|
+
| `private` | `true` on a workspace-only package | absent; `publishConfig.access` set instead |
|
|
97
|
+
| cost | consumer compiles it | a build to maintain, and output that can go stale |
|
|
98
|
+
|
|
99
|
+
**Default to source-consumed inside a workspace.** A build step exists to serve publication;
|
|
100
|
+
adding one for a package nobody publishes is a maintenance cost with no consumer.
|
|
101
|
+
|
|
102
|
+
## Release
|
|
103
|
+
|
|
104
|
+
Read the repository, then take exactly one branch — **Class A**, per
|
|
105
|
+
[`standards-from-config`](../standards-from-config/SKILL.md): the config *is* the answer.
|
|
106
|
+
|
|
107
|
+
1. **`.changeset/` present → changesets.** Add a changeset describing the change and let the
|
|
108
|
+
release job bump and publish. Never edit `version` by hand.
|
|
109
|
+
2. **A task runner with a release command (e.g. `nx release`) → that command.** It owns
|
|
110
|
+
version, tag, and changelog together; splitting them by hand desynchronises them.
|
|
111
|
+
3. **Neither present → none configured.** **Propose** a mechanism and stop. Do not hand-bump:
|
|
112
|
+
a manually edited version has no changelog entry and no tag, so the next release cannot
|
|
113
|
+
tell what shipped.
|
|
114
|
+
|
|
115
|
+
A breaking change carries the `!` marker and the footer — see
|
|
116
|
+
[`conventional-commits-writing`](../conventional-commits-writing/SKILL.md). The marker is
|
|
117
|
+
what a release tool reads to decide the major bump, so omitting it publishes a breaking
|
|
118
|
+
change as a patch.
|
|
119
|
+
|
|
120
|
+
## Output format
|
|
121
|
+
|
|
122
|
+
1. State the classification (source-consumed / built surface / undeclared) and where it was
|
|
123
|
+
read from.
|
|
124
|
+
2. List every `error` finding with its fix, then the warnings.
|
|
125
|
+
3. Name the release branch taken and the evidence in the repository for it.
|
|
126
|
+
4. Say explicitly what was not checked — buildability, types, runtime behaviour.
|
|
127
|
+
|
|
128
|
+
## Gotchas
|
|
129
|
+
|
|
130
|
+
- **"Invalid hook call" names neither package.** The developer sees a React error and looks
|
|
131
|
+
at their component; the cause is a library shipping its own React. This is why peer
|
|
132
|
+
placement is an error and not a warning.
|
|
133
|
+
- **Condition order is silent.** `{ "import": …, "types": … }` type-checks fine at author
|
|
134
|
+
time and ships untyped to the consumer.
|
|
135
|
+
- **A stale build directory passes every metadata check.** The manifest points at files that
|
|
136
|
+
exist; nothing says they match `src/`. Only a real build proves that.
|
|
137
|
+
- **`files` is an allow-list, not a deny-list.** Adding a directory to the package means
|
|
138
|
+
adding it here, and forgetting is invisible until a consumer imports a missing path.
|
|
139
|
+
- **A `workspace:` range is not a version.** It resolves in the workspace and nowhere else.
|
|
140
|
+
|
|
141
|
+
## Do NOT
|
|
142
|
+
|
|
143
|
+
- Do NOT put `react` or `react-dom` in `dependencies`.
|
|
144
|
+
- Do NOT write an exports map before answering buildable-vs-source-consumed.
|
|
145
|
+
- Do NOT place `types` after `import` or `require`.
|
|
146
|
+
- Do NOT edit a `version` field by hand, in any of the three release branches.
|
|
147
|
+
- Do NOT claim the package builds because the check passed — it never ran a build.
|
|
148
|
+
|
|
149
|
+
## Security constraints
|
|
150
|
+
|
|
151
|
+
`scripts/check_package_surface.ts` is **read-only and offline by construction**, and the
|
|
152
|
+
constraint is worth stating because a packaging tool is a tempting place to lose it:
|
|
153
|
+
|
|
154
|
+
- **No network.** It never resolves a version, queries a registry, or checks whether a name
|
|
155
|
+
is taken. Every verdict comes from the manifest in front of it.
|
|
156
|
+
- **No subprocess.** No package manager, no bundler, no compiler. It cannot install, build,
|
|
157
|
+
or publish, so running it on an untrusted repository executes none of that repository's code
|
|
158
|
+
— which a package manager's lifecycle scripts would.
|
|
159
|
+
- **No writes.** It reads `package.json` and tests path existence. It never edits a manifest,
|
|
160
|
+
so it can never "fix" a version field, which is the one thing § Release forbids.
|
|
161
|
+
- **Paths come from the caller, targets from the manifest.** Export targets are resolved
|
|
162
|
+
relative to the given root and used only for an existence test; nothing is read from them.
|
|
163
|
+
|
|
164
|
+
Widening any of these turns a metadata reader into something that runs a third party's code.
|
|
165
|
+
If a future check needs a build, it belongs in a separate integration test with its own
|
|
166
|
+
declared cost — never here.
|
|
167
|
+
|
|
168
|
+
## See also
|
|
169
|
+
|
|
170
|
+
- [`composer-packages`](../composer-packages/SKILL.md) — the PHP twin; same surface discipline, different manifest.
|
|
171
|
+
- [`standards-from-config`](../standards-from-config/SKILL.md) — the Class-A rule the § Release branch follows.
|
|
172
|
+
- [`conventional-commits-writing`](../conventional-commits-writing/SKILL.md) — the `!` marker a release tool reads.
|
|
173
|
+
- [`ui-component-architect`](../ui-component-architect/SKILL.md) — the component inside the library; this skill is the package around it.
|