@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
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: alerting-doctrine
|
|
4
|
+
description: "Use when deciding what earns a page — the page, action and info classes stated provider-neutrally, and the rule that a page without an owner, a runbook and a first diagnostic step is malformed."
|
|
5
|
+
domain: devops
|
|
6
|
+
workspaces:
|
|
7
|
+
- engineering
|
|
8
|
+
packs:
|
|
9
|
+
- engineering-base
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# alerting-doctrine
|
|
13
|
+
|
|
14
|
+
## When to use
|
|
15
|
+
|
|
16
|
+
Use when classifying an alert, reviewing an alert set, or deciding whether a
|
|
17
|
+
condition should wake a human. Provider-neutral: the classes below hold whichever
|
|
18
|
+
tool evaluates the rule.
|
|
19
|
+
|
|
20
|
+
Do NOT use when:
|
|
21
|
+
- Establishing which signals exist at all (use `logging-monitoring` first — you
|
|
22
|
+
cannot alert on a signal the project does not have)
|
|
23
|
+
- Adjudicating a go/no-go verdict (use `operational-readiness`)
|
|
24
|
+
- Running an incident once it has started (use `incident-commander`)
|
|
25
|
+
- Building the dashboard the alert links to (use `dashboard-design`, `grafana`)
|
|
26
|
+
|
|
27
|
+
## The three classes
|
|
28
|
+
|
|
29
|
+
Every alert is exactly one of these. The class is decided by **what the recipient
|
|
30
|
+
must do**, never by how alarming the condition sounds.
|
|
31
|
+
|
|
32
|
+
| Class | Condition that earns it | Destination | Latency of response |
|
|
33
|
+
|---|---|---|---|
|
|
34
|
+
| `page` | A human must act **now** or the damage grows | Wakes a named human | Minutes |
|
|
35
|
+
| `action` | A human must act, but the next working day is soon enough | Ticket or queue | Hours to days |
|
|
36
|
+
| `info` | Nobody must act; it is context for when something else fires | Log, channel, dashboard | Never |
|
|
37
|
+
|
|
38
|
+
**What earns a `page`** — all three, as a condition rather than a preference:
|
|
39
|
+
|
|
40
|
+
1. **User-visible or irreversible.** Users are affected now, or damage
|
|
41
|
+
accumulates while nobody looks (data loss, budget burn, a queue filling
|
|
42
|
+
toward a ceiling).
|
|
43
|
+
2. **Actionable now.** A named human can do something about it at 3am. "The
|
|
44
|
+
upstream provider is down" is not actionable unless failover is manual.
|
|
45
|
+
3. **Not self-clearing.** A condition that resolves itself before a human can
|
|
46
|
+
log in is an `info` with a trend, not a page.
|
|
47
|
+
|
|
48
|
+
Fail any one → it is `action` or `info`.
|
|
49
|
+
|
|
50
|
+
**What a misclassification costs.** Too eager: alert fatigue, and the page that
|
|
51
|
+
mattered arrives in a stream of pages that did not. Fatigue is not an
|
|
52
|
+
inconvenience — it is the mechanism by which a real outage is missed, and it is
|
|
53
|
+
caused by pages that were never actionable. Too shy: the condition sits in a
|
|
54
|
+
channel nobody reads until a user reports it. The asymmetry is real but bounded
|
|
55
|
+
in both directions, which is why the three conditions above are stated as a test
|
|
56
|
+
and not as taste.
|
|
57
|
+
|
|
58
|
+
## A page is malformed without all three fields
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
A PAGE THAT CANNOT NAME AN OWNER, A RUNBOOK AND A FIRST DIAGNOSTIC STEP
|
|
62
|
+
IS A CONFIGURATION DEFECT, NOT A JUDGEMENT CALL.
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
| Field | What it must carry | Why it is mandatory |
|
|
66
|
+
|---|---|---|
|
|
67
|
+
| **owner** | A named human or an on-call rotation that resolves to one | An alert owned by "the team" is owned by nobody at 3am |
|
|
68
|
+
| **runbook** | A pointer to the procedure — see the contract below | Waking someone with no procedure transfers the whole diagnosis to the least-prepared moment |
|
|
69
|
+
| **first diagnostic step** | The single concrete first action | The most expensive minutes of an incident are the ones spent deciding where to look |
|
|
70
|
+
|
|
71
|
+
This is checkable from the alert definition alone, which is what makes it a
|
|
72
|
+
defect rather than an opinion. `action` and `info` alerts do not carry the
|
|
73
|
+
obligation — nobody is being woken.
|
|
74
|
+
|
|
75
|
+
## The runbook contract — deliberately lean
|
|
76
|
+
|
|
77
|
+
A runbook worth paging into carries five things. More than this and it rots
|
|
78
|
+
faster than the system changes; fewer and it is a link that wastes the minutes it
|
|
79
|
+
was supposed to save.
|
|
80
|
+
|
|
81
|
+
1. **What this alert means** — one sentence, in terms of user impact.
|
|
82
|
+
2. **First diagnostic step** — the one command, query or dashboard to open. The
|
|
83
|
+
same value the alert definition carries, so the two cannot drift.
|
|
84
|
+
3. **The two or three most common causes**, each with how to confirm it.
|
|
85
|
+
4. **Mitigation vs fix** — how to stop the bleeding, marked separately from how
|
|
86
|
+
to repair the cause. Under a page, mitigation is the goal.
|
|
87
|
+
5. **Escalation** — who is next, and the condition that triggers going to them.
|
|
88
|
+
|
|
89
|
+
Explicitly **not** in a runbook: architecture background, a full topology
|
|
90
|
+
diagram, anything the reader could get later. A runbook is read under time
|
|
91
|
+
pressure by someone who was asleep.
|
|
92
|
+
|
|
93
|
+
→ Once an incident is open, `incident-commander` owns the roles, the update
|
|
94
|
+
cadence and the post-mortem obligation. This skill stops at the moment the page
|
|
95
|
+
fires.
|
|
96
|
+
|
|
97
|
+
## Procedure: Classify and validate an alert
|
|
98
|
+
|
|
99
|
+
1. **Confirm the signal exists.** An alert on a signal `logging-monitoring`
|
|
100
|
+
scored `unavailable` or `unknown` cannot fire meaningfully. Fix the signal
|
|
101
|
+
first.
|
|
102
|
+
2. **Apply the three page conditions.** User-visible or irreversible, actionable
|
|
103
|
+
now, not self-clearing. All three → `page`. Otherwise → `action` if a human
|
|
104
|
+
must eventually act, else `info`.
|
|
105
|
+
3. **For a `page`, check the three mandatory fields.** Any missing → verdict
|
|
106
|
+
`malformed-alert: missing-<field>`. Do not downgrade the class to dodge the
|
|
107
|
+
obligation; a page whose fields cannot be named is either a defect to fix or
|
|
108
|
+
was never a page.
|
|
109
|
+
4. **For a `page`, check the runbook against the five-item contract**, and
|
|
110
|
+
confirm its first diagnostic step matches the alert's.
|
|
111
|
+
5. **Record the verdict per alert** — `valid-page-alert`, `valid-action-alert`,
|
|
112
|
+
`valid-info-alert`, or `malformed-alert: <reason>`.
|
|
113
|
+
|
|
114
|
+
### Validate
|
|
115
|
+
|
|
116
|
+
- Verify every `page` names an owner resolving to a single human.
|
|
117
|
+
- Verify every `page` links a runbook that exists.
|
|
118
|
+
- Verify every `page` carries a first diagnostic step identical to its runbook's.
|
|
119
|
+
- Confirm no alert was reclassified downward purely to avoid the three fields.
|
|
120
|
+
- Confirm every alert's underlying signal is `present`, not `unknown`.
|
|
121
|
+
- Confirm the alert set contains no `page` that is self-clearing.
|
|
122
|
+
|
|
123
|
+
## Output format
|
|
124
|
+
|
|
125
|
+
1. One row per alert — name, class, verdict.
|
|
126
|
+
2. For each `malformed-alert`, the missing field named explicitly.
|
|
127
|
+
3. The pages, with owner, runbook pointer and first diagnostic step.
|
|
128
|
+
|
|
129
|
+
## Examples
|
|
130
|
+
|
|
131
|
+
Contract fixtures. Three pairs, one per mandatory field; each pair differs
|
|
132
|
+
**only** in the field under test, and each case states the verdict it must
|
|
133
|
+
produce. Contract evidence for review, not an executable suite.
|
|
134
|
+
|
|
135
|
+
### Missing owner — malformed vs clean
|
|
136
|
+
|
|
137
|
+
```yaml
|
|
138
|
+
# malformed
|
|
139
|
+
alert: checkout_error_rate_high
|
|
140
|
+
class: page
|
|
141
|
+
runbook: docs/runbooks/checkout-errors.md
|
|
142
|
+
first_diagnostic_step: "open the checkout error-rate panel, last 30m"
|
|
143
|
+
verdict: "malformed-alert: missing-owner"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
```yaml
|
|
147
|
+
# clean — only the owner is added
|
|
148
|
+
alert: checkout_error_rate_high
|
|
149
|
+
class: page
|
|
150
|
+
owner: payments-on-call
|
|
151
|
+
runbook: docs/runbooks/checkout-errors.md
|
|
152
|
+
first_diagnostic_step: "open the checkout error-rate panel, last 30m"
|
|
153
|
+
verdict: valid-page-alert
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Missing runbook — malformed vs clean
|
|
157
|
+
|
|
158
|
+
```yaml
|
|
159
|
+
# malformed
|
|
160
|
+
alert: db_pool_saturation
|
|
161
|
+
class: page
|
|
162
|
+
owner: platform-on-call
|
|
163
|
+
first_diagnostic_step: "check db_pool_in_use / db_pool_size"
|
|
164
|
+
verdict: "malformed-alert: missing-runbook"
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
```yaml
|
|
168
|
+
# clean — only the runbook is added
|
|
169
|
+
alert: db_pool_saturation
|
|
170
|
+
class: page
|
|
171
|
+
owner: platform-on-call
|
|
172
|
+
runbook: docs/runbooks/db-pool.md
|
|
173
|
+
first_diagnostic_step: "check db_pool_in_use / db_pool_size"
|
|
174
|
+
verdict: valid-page-alert
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Missing first diagnostic step — malformed vs clean
|
|
178
|
+
|
|
179
|
+
```yaml
|
|
180
|
+
# malformed
|
|
181
|
+
alert: queue_wait_time_high
|
|
182
|
+
class: page
|
|
183
|
+
owner: platform-on-call
|
|
184
|
+
runbook: docs/runbooks/queue-wait.md
|
|
185
|
+
verdict: "malformed-alert: missing-diagnostic-step"
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```yaml
|
|
189
|
+
# clean — only the first diagnostic step is added
|
|
190
|
+
alert: queue_wait_time_high
|
|
191
|
+
class: page
|
|
192
|
+
owner: platform-on-call
|
|
193
|
+
runbook: docs/runbooks/queue-wait.md
|
|
194
|
+
first_diagnostic_step: "open the queue wait-time panel; compare to enqueue rate"
|
|
195
|
+
verdict: valid-page-alert
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Gotcha
|
|
199
|
+
|
|
200
|
+
- Severity labels are not classes. `critical` in a tool's own vocabulary says
|
|
201
|
+
nothing about whether a human must act now.
|
|
202
|
+
- A page nobody can action is the fastest route to ignoring all pages.
|
|
203
|
+
- Reclassifying a page to `action` because the owner is unknown hides the defect
|
|
204
|
+
instead of fixing it.
|
|
205
|
+
- An alert on a threshold with `proposed` provenance is alerting on a guess —
|
|
206
|
+
see `logging-monitoring`.
|
|
207
|
+
- Queue depth alerts fire late; queue wait time fires in time.
|
|
208
|
+
|
|
209
|
+
## Do NOT
|
|
210
|
+
|
|
211
|
+
- Do NOT ship a `page` without an owner, a runbook and a first diagnostic step.
|
|
212
|
+
- Do NOT page on a self-clearing condition.
|
|
213
|
+
- Do NOT page on a signal scored `unknown`.
|
|
214
|
+
- Do NOT put architecture background in a runbook — it is read under pressure.
|
|
215
|
+
- Do NOT let the alert's first diagnostic step and the runbook's disagree.
|
|
216
|
+
|
|
217
|
+
## Auto-trigger keywords
|
|
218
|
+
|
|
219
|
+
- alert
|
|
220
|
+
- alerting
|
|
221
|
+
- page
|
|
222
|
+
- on-call
|
|
223
|
+
- runbook
|
|
224
|
+
- alert fatigue
|
|
225
|
+
- what earns a page
|
|
@@ -261,7 +261,6 @@ Runtime confirmation (e.g. *"reproduce the cross-tenant read against staging"*,
|
|
|
261
261
|
— rubric for "minimum control" recommendations.
|
|
262
262
|
[csrc.nist.gov/projects/risk-management/sp800-53-controls](https://csrc.nist.gov/projects/risk-management/sp800-53-controls/release-search#!/800-53)
|
|
263
263
|
- [`threat-modeling`](../threat-modeling/SKILL.md),
|
|
264
|
-
[`data-exposure-review`](../data-exposure-review/SKILL.md),
|
|
265
264
|
[`judge-security-auditor`](../judge-security-auditor/SKILL.md),
|
|
266
265
|
[`security`](../security/SKILL.md),
|
|
267
266
|
[`security-audit`](../security-audit/SKILL.md) — sibling review / implementation skills.
|
|
@@ -182,6 +182,38 @@ does not execute code, run tests, or touch the network**.
|
|
|
182
182
|
* NEVER claim a dependency without a file:line citation from grep output
|
|
183
183
|
* NEVER chase dependencies past 2nd order without explicit scope approval — flag and stop
|
|
184
184
|
|
|
185
|
+
## Monorepo
|
|
186
|
+
|
|
187
|
+
In a workspace repository the reach of an edit does not stop at the workspace
|
|
188
|
+
that contains it. A file under `packages/ui` that three apps import has a blast
|
|
189
|
+
radius of four workspaces, and the grep sweep above will not find the edge —
|
|
190
|
+
the importing code says `@org/ui`, not a path.
|
|
191
|
+
|
|
192
|
+
**Before editing a file in a workspace other workspaces depend on, name the
|
|
193
|
+
affected set.** Ask the task runner, which computes it from the real graph:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
# Turborepo — everything affected by the working tree vs the previous commit
|
|
197
|
+
npx turbo run test --filter=...[HEAD^1]
|
|
198
|
+
|
|
199
|
+
# Nx
|
|
200
|
+
npx nx affected -t test
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
`...[HEAD^1]` is the dependents form: `...` ahead of the selector means "and
|
|
204
|
+
everything that depends on it". Without it you get the changed package alone,
|
|
205
|
+
which is the answer that looks right and misses the point.
|
|
206
|
+
|
|
207
|
+
**With no runner installed**, walk it in reverse from the manifests: find the
|
|
208
|
+
edited file's owning workspace `name`, then grep every other workspace's
|
|
209
|
+
`package.json` for that name. Those are the first-order dependents; repeat once
|
|
210
|
+
for second order, and stop there per the 2nd-order rule above.
|
|
211
|
+
[`monorepo-workspace`](../monorepo-workspace/SKILL.md) § 4 prints that graph.
|
|
212
|
+
|
|
213
|
+
Report the affected set as workspace names with the manifest that declares each
|
|
214
|
+
edge, exactly as the reach table above reports file:line — an affected set
|
|
215
|
+
without its citing edge is the same unverifiable claim in coarser units.
|
|
216
|
+
|
|
185
217
|
## References
|
|
186
218
|
|
|
187
219
|
- **Martin Fowler — "Refactoring: Improving the Design of Existing Code"** (2018)
|
|
@@ -13,6 +13,9 @@ trust:
|
|
|
13
13
|
level: professional
|
|
14
14
|
install:
|
|
15
15
|
removable: true
|
|
16
|
+
scope:
|
|
17
|
+
write: []
|
|
18
|
+
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."
|
|
16
19
|
execution:
|
|
17
20
|
type: manual
|
|
18
21
|
---
|
|
@@ -13,6 +13,9 @@ trust:
|
|
|
13
13
|
level: experimental
|
|
14
14
|
install:
|
|
15
15
|
removable: true
|
|
16
|
+
scope:
|
|
17
|
+
write: []
|
|
18
|
+
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."
|
|
16
19
|
execution:
|
|
17
20
|
type: manual
|
|
18
21
|
---
|
|
@@ -13,6 +13,9 @@ trust:
|
|
|
13
13
|
level: professional
|
|
14
14
|
install:
|
|
15
15
|
removable: true
|
|
16
|
+
scope:
|
|
17
|
+
write: []
|
|
18
|
+
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."
|
|
16
19
|
execution:
|
|
17
20
|
type: manual
|
|
18
21
|
---
|
|
@@ -13,6 +13,9 @@ trust:
|
|
|
13
13
|
level: professional
|
|
14
14
|
install:
|
|
15
15
|
removable: true
|
|
16
|
+
scope:
|
|
17
|
+
write: []
|
|
18
|
+
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."
|
|
16
19
|
execution:
|
|
17
20
|
type: manual
|
|
18
21
|
---
|
|
@@ -13,6 +13,9 @@ trust:
|
|
|
13
13
|
level: professional
|
|
14
14
|
install:
|
|
15
15
|
removable: true
|
|
16
|
+
scope:
|
|
17
|
+
write: []
|
|
18
|
+
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."
|
|
16
19
|
execution:
|
|
17
20
|
type: manual
|
|
18
21
|
---
|
|
@@ -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
|
---
|
|
@@ -3,6 +3,9 @@ model_tier: medium
|
|
|
3
3
|
name: check-refs
|
|
4
4
|
description: "Use when verifying cross-references between skills, rules, commands, guidelines, and context documents are not broken after edits, renames, or deletions."
|
|
5
5
|
domain: process
|
|
6
|
+
scope:
|
|
7
|
+
write: []
|
|
8
|
+
verification_reason: "the declared command is a read-only checker: grep -c 'writeFileSync|mkdirSync|appendFileSync' src/scripts/check_references.ts returns 2 and both sit inside its own --self-test tmpdir. Absence of a write is not something a command can prove, so the derivation is stated instead."
|
|
6
9
|
execution:
|
|
7
10
|
type: assisted
|
|
8
11
|
handler: shell
|
|
@@ -28,8 +28,51 @@ Do NOT use when:
|
|
|
28
28
|
2. **Understand the scope** — what exactly needs to change and why?
|
|
29
29
|
3. **Find ALL references** — use `codebase-retrieval` and `view` with `search_query_regex` to find every
|
|
30
30
|
caller, implementation, test, and configuration that references the code being changed.
|
|
31
|
+
**If the change is to a closed set** — an enum, union, literal type, state
|
|
32
|
+
machine, role or permission set — identifier search is not enough: the
|
|
33
|
+
consumers that break are the ones that never name the type. Search by shape as
|
|
34
|
+
well (`switch` / `match` / if-chains over it, lookup tables keyed by it,
|
|
35
|
+
validators, serializers, schemas, fixtures, translation keys) and classify each
|
|
36
|
+
as exhaustive, deliberate fallback, or missing case. Procedure:
|
|
37
|
+
[`downstream-changes-mechanics`](../../../docs/guidelines/agent-infra/downstream-changes-mechanics.md).
|
|
31
38
|
4. **Map the impact** — create a list of all files that will need changes.
|
|
32
|
-
5. **
|
|
39
|
+
5. **Decide the verdict, if the refactor is a de-duplication** — see the
|
|
40
|
+
safe-abstraction gate below. An extraction with no recorded verdict is a
|
|
41
|
+
guess about whether two things are the same thing.
|
|
42
|
+
6. **Present the plan** — show the user what will be affected before starting.
|
|
43
|
+
|
|
44
|
+
### Safe-abstraction gate — before merging two things into one
|
|
45
|
+
|
|
46
|
+
This skill performs extractions; it is therefore the place that decides
|
|
47
|
+
whether one should happen. A wrong abstraction costs more than the
|
|
48
|
+
duplication it replaced, because the duplication is visible and the wrong
|
|
49
|
+
abstraction grows caller flags until nobody can remove it. Ask, before
|
|
50
|
+
moving any code:
|
|
51
|
+
|
|
52
|
+
1. Is this the same knowledge, or two facts that currently look alike?
|
|
53
|
+
2. Would both copies change for the same reason?
|
|
54
|
+
3. Is there one honest domain name that fits **every** call site?
|
|
55
|
+
4. Can the common core stay free of caller-specific flags and modes?
|
|
56
|
+
5. Are public contracts preserved, and do tests prove behavioural equivalence?
|
|
57
|
+
6. **If the two copies diverged tomorrow, would that be a defect or
|
|
58
|
+
legitimate evolution?**
|
|
59
|
+
|
|
60
|
+
A "legitimate evolution" answer to the last question is decisive: stop, and
|
|
61
|
+
record the verdict `keep-duplicated`. That closes the refactor **successfully**
|
|
62
|
+
— so does `de-abstract`, splitting a shared unit that has grown modes back
|
|
63
|
+
apart. Neither is a failure to act, and neither needs an apology in the
|
|
64
|
+
output. Textual similarity is not evidence of shared knowledge: copies that
|
|
65
|
+
read identically can encode different assumptions, and merging them changes
|
|
66
|
+
behaviour silently.
|
|
67
|
+
|
|
68
|
+
The class names and the full verdict list are in
|
|
69
|
+
[`redundancy-taxonomy`](../../../docs/guidelines/redundancy-taxonomy.md).
|
|
70
|
+
|
|
71
|
+
When the refactor goes the other way and **creates** a new unit, the reuse
|
|
72
|
+
question comes first: does an existing class or component already cover this, and
|
|
73
|
+
what does composing or extending it cost against a new one? Thresholds per
|
|
74
|
+
artifact class:
|
|
75
|
+
[`component-oriented-and-oop-development`](../../../docs/guidelines/component-oriented-and-oop-development.md).
|
|
33
76
|
|
|
34
77
|
## Procedure: Refactor code
|
|
35
78
|
|
|
@@ -140,6 +183,7 @@ After the code changes are verified, update all affected documentation:
|
|
|
140
183
|
1. Find all usages → update all usages → update docs → run the static analyser → run tests.
|
|
141
184
|
|
|
142
185
|
### Extract method / class
|
|
186
|
+
0. Run the safe-abstraction gate above — a `keep-duplicated` verdict ends it here.
|
|
143
187
|
1. Create the new method/class → move logic → update caller → update docs → run the static analyser → run tests.
|
|
144
188
|
|
|
145
189
|
### Move class to different namespace
|
|
@@ -37,11 +37,70 @@ Use this skill when:
|
|
|
37
37
|
2. **Detect the change-type + depth** — route to the right checklist and pick the review depth (below).
|
|
38
38
|
3. **Architecture** — does the approach make sense? Right layer? Right pattern?
|
|
39
39
|
4. **Correctness** — does it actually work? Edge cases? Error handling?
|
|
40
|
-
5. **Quality** — types, naming, readability,
|
|
41
|
-
6. **
|
|
42
|
-
7. **
|
|
43
|
-
8. **
|
|
44
|
-
9. **
|
|
40
|
+
5. **Quality** — types, naming, readability, SOLID?
|
|
41
|
+
6. **Redundancy** — see below; a verdict, not a "this looks duplicated".
|
|
42
|
+
7. **Propagation** — did a changed concept reach every occurrence? see below.
|
|
43
|
+
8. **Security** — input validation, authorization, injection?
|
|
44
|
+
9. **Performance** — N+1 queries, missing indexes, unbounded queries?
|
|
45
|
+
10. **Tests** — are new paths covered? Are existing tests still valid?
|
|
46
|
+
11. **Conventions** — does it follow project standards?
|
|
47
|
+
|
|
48
|
+
## The redundancy dimension
|
|
49
|
+
|
|
50
|
+
`DRY` as a checklist word produced findings nobody could act on: it names a
|
|
51
|
+
principle, not a decision, and it has no answer for the case where two copies
|
|
52
|
+
should stay. Replace it with a verdict.
|
|
53
|
+
|
|
54
|
+
Classify the finding against
|
|
55
|
+
[`redundancy-taxonomy`](../../../docs/guidelines/redundancy-taxonomy.md) —
|
|
56
|
+
implementation, knowledge, or representation — and record one verdict from that
|
|
57
|
+
document's list. `keep-duplicated` and `de-abstract` are successful outcomes; a
|
|
58
|
+
finding with no recorded verdict stays open. Knowledge, policy, contract and
|
|
59
|
+
delivery-authority duplication outrank clone percentage: two copies of a
|
|
60
|
+
*decision* diverge into a bug, two copies of a loop usually do not.
|
|
61
|
+
|
|
62
|
+
**Diff-aware, always.** The finding is duplication this change **introduces**,
|
|
63
|
+
or duplication on a surface it touches. Pre-existing duplication is baseline —
|
|
64
|
+
it is named once if the reviewer thinks it matters and it never fails an
|
|
65
|
+
unrelated change. A review that reds a diff against debt it did not create is a
|
|
66
|
+
review nobody will run twice.
|
|
67
|
+
|
|
68
|
+
For comments, labels, tooltips, placeholders and empty states, run the
|
|
69
|
+
Information Delta Test from the same document rather than judging text volume.
|
|
70
|
+
A reduction that removes an accessibility name is a defect, not a cleanup.
|
|
71
|
+
|
|
72
|
+
Naming is the same dimension pointed the other way: a diff that introduces a
|
|
73
|
+
second term for a concept the tree already names is the finding, and an existing
|
|
74
|
+
split is baseline. The classes and the `canonicalize-term` / `keep-distinct`
|
|
75
|
+
verdicts are in the same document.
|
|
76
|
+
|
|
77
|
+
## The propagation dimension
|
|
78
|
+
|
|
79
|
+
A change is complete when the **concept** changed everywhere, not when the named
|
|
80
|
+
file compiles. Two shapes to check, both of which the file-level review misses:
|
|
81
|
+
|
|
82
|
+
**A closed set gained or lost a member** (enum, union, literal type, state
|
|
83
|
+
machine, role or permission set, schema `enum`, DB check constraint). List the
|
|
84
|
+
consumers and their status — every `switch` / `match` / if-chain over the type,
|
|
85
|
+
every lookup table keyed by it, every validator, serializer, schema, fixture and
|
|
86
|
+
translation key. A `default` branch that silently absorbs the new member is a
|
|
87
|
+
missing case, not a handled one. Procedure:
|
|
88
|
+
[`downstream-changes-mechanics`](../../../docs/guidelines/agent-infra/downstream-changes-mechanics.md).
|
|
89
|
+
|
|
90
|
+
**A shared behaviour moved and its siblings did not.** A defect fixed in one
|
|
91
|
+
place is presumed to recur until searched: name the exact wrong construct, grep
|
|
92
|
+
the tree, and report the count — zero is a real answer and worth stating, because
|
|
93
|
+
it distinguishes "this was unique" from "nobody looked".
|
|
94
|
+
|
|
95
|
+
Diff-aware on the same terms as redundancy: the finding is a concept **this
|
|
96
|
+
change** left half-migrated. Pre-existing incompleteness elsewhere is baseline.
|
|
97
|
+
|
|
98
|
+
When the diff **creates** a class, component, service or hook rather than
|
|
99
|
+
changing one, the question is whether it needed to exist: what was searched,
|
|
100
|
+
what was found, and why composing or extending the incumbent was rejected. An
|
|
101
|
+
answer, not a ceremony — and the thresholds for when repetition actually earns
|
|
102
|
+
an abstraction are in
|
|
103
|
+
[`component-oriented-and-oop-development`](../../../docs/guidelines/component-oriented-and-oop-development.md).
|
|
45
104
|
|
|
46
105
|
## Change-type routing — load only the checklist the diff needs
|
|
47
106
|
|
|
@@ -109,6 +168,17 @@ coverage reads as full coverage.
|
|
|
109
168
|
shuffled file order (deterministic seed per session, logged for replay) so
|
|
110
169
|
a fixed order does not correlate their blind spots. Single-reviewer → no shuffle.
|
|
111
170
|
|
|
171
|
+
**MEASURED, and the result is a null — 2026-08-23.** This control is prose and nothing in
|
|
172
|
+
the package implements it. That is now true for a recorded reason rather than by
|
|
173
|
+
omission: the pre-registered question — does rotating reviewer order change the finding set
|
|
174
|
+
on a frozen corpus, by more than 15 % — **cannot be answered from the corpus that exists**.
|
|
175
|
+
`agents/evidence/reviews/` holds 123 findings artifacts, and none of them records the file
|
|
176
|
+
order it was produced under, so the counterfactual is not recoverable; re-running reviewers
|
|
177
|
+
produces fresh judgements in which ordering is confounded with run-to-run variance. Full
|
|
178
|
+
null, with its reopening condition: `agents/evidence/review-rotation-prereg-and-null.md`.
|
|
179
|
+
A reduced-power crossover was considered and refused — it would risk a false closure on a
|
|
180
|
+
control this paragraph still specifies.
|
|
181
|
+
|
|
112
182
|
## Before creating a PR
|
|
113
183
|
|
|
114
184
|
1. When `quality.local_auto_run: true`: run the project's quality pipeline (see the stack carve-out for the exact commands — PHP: `quality-tools`) and tests via the project's runner (`make test`, `npm test`, `pytest`, `go test ./...`, or the project's wrapper script). Under the default (`false` / missing): skip both — remote CI on the PR is the gate.
|
|
@@ -3,6 +3,9 @@ model_tier: inherit
|
|
|
3
3
|
name: command-routing
|
|
4
4
|
description: "Use when the user invokes a slash command like /create-pr, /commit, /fix-ci, or pastes command file content — routes to the right command with context inference and GitHub API patterns."
|
|
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
|
|
@@ -23,6 +26,9 @@ Triggered when user invokes a slash command. The `slash-command-routing-policy`
|
|
|
23
26
|
|
|
24
27
|
1. **Match command** — Find the command file in `.augment/commands/` or `agents/overrides/commands/`.
|
|
25
28
|
2. **Infer inputs** — Before asking the user, try to infer values (see table below).
|
|
29
|
+
2b. **List a matching playbook in the preamble.** If a playbook's `task` matches the
|
|
30
|
+
command's name, name it before the steps run — it is this repository's own procedure and
|
|
31
|
+
outranks a shipped one ([`playbook-precedence`](../../rules/playbook-precedence.md)).
|
|
26
32
|
3. **Execute steps** — Follow the command steps in exact order.
|
|
27
33
|
4. **Verify output** — Confirm expected result was produced (commit, PR, file change, etc.).
|
|
28
34
|
|
|
@@ -305,6 +305,41 @@ Bad description (vague, no outcome):
|
|
|
305
305
|
|
|
306
306
|
> "PR command"
|
|
307
307
|
|
|
308
|
+
## The `## Examples` section on a user-facing command
|
|
309
|
+
|
|
310
|
+
Stated once, here — never repeated per command.
|
|
311
|
+
|
|
312
|
+
A command whose `visibility` is `visible` or `advanced` carries an
|
|
313
|
+
`## Examples` section: **1-3 filled invocations** in a fence, then **exactly
|
|
314
|
+
one Why line**. Filled means a real path, a real ticket key, a real flag — a
|
|
315
|
+
placeholder teaches nothing about what to type.
|
|
316
|
+
|
|
317
|
+
The Why line uses one of two literals, `**Why it works:**` or a
|
|
318
|
+
`### Why it works` heading, and cites **exactly one** pattern id from
|
|
319
|
+
[`prompt-patterns.yml`](../../config/discovery/prompt-patterns.yml):
|
|
320
|
+
`outcome-not-steps` · `self-check-loop` · `measurable-target` ·
|
|
321
|
+
`give-the-artifact` · `point-at-reference` · `say-the-format`. One id, because
|
|
322
|
+
the Why line's job is the part that transfers to a command the reader has not
|
|
323
|
+
seen, and a line naming three patterns names none of them.
|
|
324
|
+
|
|
325
|
+
~~~
|
|
326
|
+
## Examples
|
|
327
|
+
|
|
328
|
+
```
|
|
329
|
+
/work fix the failing login test under tests/feature/auth
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**Why it works:** measurable-target — it names the file instead of the symptom.
|
|
333
|
+
~~~
|
|
334
|
+
|
|
335
|
+
Enforced by `check_command_examples`, forward-only: the 23 in-scope commands as
|
|
336
|
+
of 2026-08-24 are grandfathered in a frozen set inside the gate, and a command
|
|
337
|
+
**added or promoted into `visible`/`advanced`** after that must comply. Two
|
|
338
|
+
things the gate checks that are easy to miss — an invocation must resolve to
|
|
339
|
+
the command's own `name:` (a rename otherwise leaves stale examples behind), and
|
|
340
|
+
a flag used in an example must be documented in the body **outside** the
|
|
341
|
+
section.
|
|
342
|
+
|
|
308
343
|
## Encode usage policy in the description
|
|
309
344
|
|
|
310
345
|
Workflow sequencing, preconditions, ID/output provenance ("copy ids verbatim,
|
|
@@ -3,6 +3,9 @@ model_tier: inherit
|
|
|
3
3
|
name: condense-memory
|
|
4
4
|
description: "When shrinking always-loaded memory files (AGENTS.md, CLAUDE.md, .cursorrules) exceeding ~150 lines or ~4,000 chars — telegraph grammar, refuses sensitive paths, .original.md round-trip."
|
|
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
|
|
@@ -39,7 +39,7 @@ Do NOT use when:
|
|
|
39
39
|
|---|---|---|
|
|
40
40
|
| `auth-model.md` | Roles, permission model, impersonation, known exceptions | `authz-review`, `judge-security-auditor`, `threat-modeling` |
|
|
41
41
|
| `tenant-boundaries.md` | Tenancy type, scope propagation, known cross-tenant paths | `multi-tenant-boundary-review`, `blast-radius-analyzer`, `judge-security-auditor` |
|
|
42
|
-
| `data-sensitivity.md` | Field classification, masking rules, log-safe types | `data-
|
|
42
|
+
| `data-sensitivity.md` | Field classification, masking rules, log-safe types | `data-flow-mapper`, logging reviewers |
|
|
43
43
|
| `deployment-order.md` | Migration strategy, feature flags, rollback plan | `migration-safety`, `judge-bug-hunter`, release reviewers |
|
|
44
44
|
| `observability.md` | Error tracking, log channels, metrics, known alerts | deploy reviewers, `bug-analyzer`, incident mode |
|
|
45
45
|
|
|
@@ -3,6 +3,9 @@ model_tier: medium
|
|
|
3
3
|
name: conventional-commits-writing
|
|
4
4
|
description: "When writing commit messages or squash-merge titles — `feat:`, `fix:`, `chore:`, scopes, breaking changes — even when the user just says 'commit this' without naming Conventional Commits."
|
|
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
|
|
@@ -3,6 +3,9 @@ model_tier: medium
|
|
|
3
3
|
name: copilot-agents-optimization
|
|
4
4
|
description: "Use when optimizing AGENTS.md or copilot-instructions.md — deduplicates against .augment/ content, enforces line budgets, and focuses each file on its audience."
|
|
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
|
|
@@ -37,6 +40,13 @@ Before changing anything, read and understand:
|
|
|
37
40
|
1. **Read `AGENTS.md`** — current content, line count, what's duplicated vs. unique.
|
|
38
41
|
2. **Read `.github/copilot-instructions.md`** — same analysis.
|
|
39
42
|
3. **Scan `.augment/`** — which skills, rules, and guidelines already cover topics from the files above.
|
|
43
|
+
3b. **Scan the playbooks too, not only `.augment/`.** A `packages/<n>/AGENTS.md` may
|
|
44
|
+
duplicate a **playbook** rather than a shipped rule, and dedup against `.augment/` alone
|
|
45
|
+
misses it entirely — the content is not in `.augment/` at all. Run
|
|
46
|
+
`findRestatedSteps` (`src/scripts/derive_playbooks.ts`) over each workspace file: a line
|
|
47
|
+
carrying a playbook's `invokes` id outside a link is a restatement to replace with a
|
|
48
|
+
pointer. The same id **inside** a link label is the shape the contract wants — see
|
|
49
|
+
[`agents-md-thin-root` § Workspace files](../agents-md-thin-root/SKILL.md).
|
|
40
50
|
4. **Identify duplication** — what content exists in both AGENTS.md and `.augment/`?
|
|
41
51
|
|
|
42
52
|
Only after this analysis, proceed with optimization.
|
|
@@ -11,6 +11,9 @@ trust:
|
|
|
11
11
|
level: professional
|
|
12
12
|
install:
|
|
13
13
|
removable: true
|
|
14
|
+
scope:
|
|
15
|
+
write: []
|
|
16
|
+
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."
|
|
14
17
|
execution:
|
|
15
18
|
type: manual
|
|
16
19
|
---
|
|
@@ -14,6 +14,9 @@ trust:
|
|
|
14
14
|
level: professional
|
|
15
15
|
install:
|
|
16
16
|
removable: true
|
|
17
|
+
scope:
|
|
18
|
+
write: []
|
|
19
|
+
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."
|
|
17
20
|
execution:
|
|
18
21
|
type: manual
|
|
19
22
|
---
|