anti-slop-engineering 1.6.0 → 1.7.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/.skills.json +1 -1
- package/README.md +139 -8
- package/SKILL.md +27 -1
- package/action.yml +90 -0
- package/assets/logo-dark.svg +6 -0
- package/assets/logo-light.svg +6 -0
- package/assets/mark.svg +5 -0
- package/bin/cli.js +259 -3
- package/bin/postinstall.js +3 -0
- package/dist/SHA256SUMS +1 -0
- package/dist/anti-slop-engineering-1.7.0.zip +0 -0
- package/dist/bin/anti-slop-rust +0 -0
- package/dist/bin/toil-guard +0 -0
- package/marketplace.json +1 -1
- package/package.json +34 -3
- package/schemas/asset_provenance_record.json +87 -0
- package/schemas/attention_budget_record.json +96 -0
- package/schemas/backprop_record.json +60 -0
- package/schemas/chroma_drift_record.json +111 -0
- package/schemas/comment_budget_record.json +76 -0
- package/schemas/demock_record.json +84 -0
- package/schemas/honeypot_record.json +60 -0
- package/schemas/house_tell_record.json +130 -0
- package/schemas/invariant_ledger.schema.json +96 -0
- package/schemas/mandela_record.json +88 -0
- package/schemas/motion_runtime_record.json +111 -0
- package/schemas/pr_boundary_record.json +75 -0
- package/schemas/reassessment_trigger.schema.json +54 -0
- package/schemas/reduction_record.json +96 -0
- package/schemas/state_note_record.json +84 -0
- package/schemas/styleseed_record.json +172 -0
- package/schemas/system_drift_record.json +109 -0
- package/schemas/tagore_record.json +132 -0
- package/scripts/api_contract_guard.py +296 -0
- package/scripts/apple_craft_guard.py +502 -0
- package/scripts/asset_provenance_guard.py +339 -0
- package/scripts/ast_slop_guard.py +289 -0
- package/scripts/attention_guard.py +496 -0
- package/scripts/audit_runner.py +466 -0
- package/scripts/backprop_guard.py +154 -0
- package/scripts/build_plugin_release.py +129 -0
- package/scripts/bump_version.py +15 -0
- package/scripts/chroma_drift_guard.py +375 -0
- package/scripts/comment_budget_guard.py +320 -0
- package/scripts/contrast_guard.py +279 -0
- package/scripts/demock_guard.py +251 -0
- package/scripts/diff_guard.py +8 -2
- package/scripts/fault_isolation_guard.py +333 -0
- package/scripts/frame_budget_guard.py +298 -0
- package/scripts/honeypot_trap_guard.py +315 -0
- package/scripts/house_tell_guard.py +405 -0
- package/scripts/installer.mjs +353 -0
- package/scripts/invariant_steward_guard.py +670 -0
- package/scripts/mandela_guard.py +215 -0
- package/scripts/migration_guard.py +311 -0
- package/scripts/motion_runtime_guard.py +275 -0
- package/scripts/observability_guard.py +498 -0
- package/scripts/package_plugin.py +211 -0
- package/scripts/paranoid_guard.py +29 -4
- package/scripts/perf_guard.py +417 -0
- package/scripts/pr_boundary_guard.py +449 -0
- package/scripts/privacy_guard.py +323 -0
- package/scripts/profiler_guard.py +309 -0
- package/scripts/re0_handoff_guard.py +190 -0
- package/scripts/reduction_guard.py +240 -0
- package/scripts/rollout_guard.py +428 -0
- package/scripts/security-audit.ts +173 -0
- package/scripts/simulation_guard.py +368 -0
- package/scripts/sre_guard.py +3 -0
- package/scripts/styleseed_guard.py +881 -0
- package/scripts/system_drift_guard.py +312 -0
- package/scripts/tagore_guard.py +859 -0
- package/scripts/verification_oracle_guard.py +313 -0
- package/services/anti-slop-rust/Cargo.lock +10 -30
- package/services/anti-slop-rust/Cargo.toml +23 -2
- package/services/anti-slop-rust/clippy.toml +14 -0
- package/services/anti-slop-rust/src/attention_auditor.rs +81 -0
- package/services/anti-slop-rust/src/comment_auditor.rs +98 -0
- package/services/anti-slop-rust/src/demock_auditor.rs +101 -0
- package/services/anti-slop-rust/src/ladder_auditor.rs +1 -0
- package/services/anti-slop-rust/src/lib.rs +35 -0
- package/services/anti-slop-rust/src/main.rs +6 -6
- package/services/anti-slop-rust/src/model.rs +5 -0
- package/services/anti-slop-rust/src/server.rs +4 -4
- package/services/anti-slop-rust/src/shit_interceptor.rs +2 -2
- package/services/anti-slop-rust/src/styleseed_auditor.rs +126 -0
- package/services/anti-slop-rust/src/tagore_auditor.rs +145 -0
- package/services/toil-guard-go/pkg/model/types.go +1 -1
- package/services/toil-guard-go/pkg/server/server.go +1 -1
- package/skills/anti-slop-engineering/SKILL.md +204 -0
- package/skills/anti-slop-engineering/agents/openai.yaml +9 -0
- package/skills/anti-slop-engineering/references/anti-pattern-catalog.md +274 -0
- package/skills/anti-slop-engineering/references/clean-room-recon.md +93 -0
- package/skills/anti-slop-engineering/references/engineering-judgment.md +39 -0
- package/skills/anti-slop-engineering/references/evaluation-cases.md +30 -0
- package/skills/anti-slop-engineering/references/evidence-and-sources.md +26 -0
- package/skills/anti-slop-engineering/references/google-sre-discipline.md +97 -0
- package/skills/anti-slop-engineering/references/pr-review.md +46 -0
- package/skills/anti-slop-engineering/references/security-and-operations.md +27 -0
- package/skills/anti-slop-engineering/references/test-integrity.md +48 -0
- package/skills/api-ergonomics-and-contract-governor/SKILL.md +151 -0
- package/skills/api-ergonomics-and-contract-governor/agents/openai.yaml +9 -0
- package/skills/api-ergonomics-and-contract-governor/evals/scenarios.json +127 -0
- package/skills/api-ergonomics-and-contract-governor/examples/api-contract-record.json +58 -0
- package/skills/api-ergonomics-and-contract-governor/examples/hardened-sdk-contract.ts +504 -0
- package/skills/api-ergonomics-and-contract-governor/playbooks/README.md +20 -0
- package/skills/api-ergonomics-and-contract-governor/playbooks/microsoft-typescript-playbook.md +94 -0
- package/skills/api-ergonomics-and-contract-governor/playbooks/references/api-booby-traps.md +98 -0
- package/skills/api-ergonomics-and-contract-governor/playbooks/stripe-dx-playbook.md +81 -0
- package/skills/api-ergonomics-and-contract-governor/references/api-contract-record-contract.md +153 -0
- package/skills/api-ergonomics-and-contract-governor/references/illegal-states-unrepresentable.md +118 -0
- package/skills/api-ergonomics-and-contract-governor/references/pit-of-success-defaults.md +61 -0
- package/skills/api-ergonomics-and-contract-governor/references/progressive-disclosure-patterns.md +93 -0
- package/skills/api-ergonomics-and-contract-governor/references/rfc9457-problem-details-contract.md +99 -0
- package/skills/api-ergonomics-and-contract-governor/usecases/architect-sdk.md +45 -0
- package/skills/api-ergonomics-and-contract-governor/usecases/audit-api-ergonomics.md +39 -0
- package/skills/api-ergonomics-and-contract-governor/usecases/design-cli.md +48 -0
- package/skills/api-ergonomics-and-contract-governor/usecases/refactor-module-contract.md +52 -0
- package/skills/apple-craft-and-frame-budget/SKILL.md +166 -0
- package/skills/apple-craft-and-frame-budget/agents/openai.yaml +9 -0
- package/skills/apple-craft-and-frame-budget/evals/scenarios.json +100 -0
- package/skills/apple-craft-and-frame-budget/examples/apple-craft-frame-budget-record.json +63 -0
- package/skills/apple-craft-and-frame-budget/examples/optimistic-state-machine-view.ts +210 -0
- package/skills/apple-craft-and-frame-budget/playbooks/README.md +76 -0
- package/skills/apple-craft-and-frame-budget/playbooks/frame-budget-physics-playbook.md +91 -0
- package/skills/apple-craft-and-frame-budget/playbooks/optimistic-state-machine-playbook.md +59 -0
- package/skills/apple-craft-and-frame-budget/references/compositor-and-frame-budget.md +104 -0
- package/skills/apple-craft-and-frame-budget/references/discriminated-union-state-machines.md +81 -0
- package/skills/apple-craft-and-frame-budget/references/frame-budget-record-contract.md +168 -0
- package/skills/apple-craft-and-frame-budget/references/optimistic-ui-and-zero-cls.md +47 -0
- package/skills/apple-craft-and-frame-budget/usecases/architect-ui-state-machine.md +28 -0
- package/skills/apple-craft-and-frame-budget/usecases/audit-frame-budget.md +29 -0
- package/skills/apple-craft-and-frame-budget/usecases/implement-optimistic-zero-cls.md +26 -0
- package/skills/apple-craft-and-interaction-physics/SKILL.md +208 -0
- package/skills/apple-craft-and-interaction-physics/agents/openai.yaml +9 -0
- package/skills/apple-craft-and-interaction-physics/evals/scenarios.json +117 -0
- package/skills/apple-craft-and-interaction-physics/examples/apple-craft-record.json +85 -0
- package/skills/apple-craft-and-interaction-physics/examples/interactive-craft-component.ts +235 -0
- package/skills/apple-craft-and-interaction-physics/playbooks/README.md +20 -0
- package/skills/apple-craft-and-interaction-physics/playbooks/interaction-physics-playbook.md +71 -0
- package/skills/apple-craft-and-interaction-physics/playbooks/keyboard-focus-mastery-playbook.md +52 -0
- package/skills/apple-craft-and-interaction-physics/playbooks/ui-state-matrix-playbook.md +97 -0
- package/skills/apple-craft-and-interaction-physics/playbooks/zero-cls-geometry-playbook.md +84 -0
- package/skills/apple-craft-and-interaction-physics/references/apple-craft-record-contract.md +199 -0
- package/skills/apple-craft-and-interaction-physics/references/exhaustive-ui-state-matrix.md +109 -0
- package/skills/apple-craft-and-interaction-physics/references/frame-budget-and-compositor.md +93 -0
- package/skills/apple-craft-and-interaction-physics/references/interruptible-spring-physics.md +105 -0
- package/skills/apple-craft-and-interaction-physics/references/keyboard-and-focus-mastery.md +178 -0
- package/skills/apple-craft-and-interaction-physics/references/zero-cls-geometry-reservation.md +125 -0
- package/skills/apple-craft-and-interaction-physics/usecases/architect-interaction-physics.md +33 -0
- package/skills/apple-craft-and-interaction-physics/usecases/audit-ui-craft.md +42 -0
- package/skills/apple-craft-and-interaction-physics/usecases/implement-exhaustive-state-view.md +31 -0
- package/skills/asset-provenance-guard/SKILL.md +47 -0
- package/skills/backprop-guard/SKILL.md +48 -0
- package/skills/chromatic-drift-guard/SKILL.md +48 -0
- package/skills/cognitive-load-and-attention-governor/SKILL.md +102 -0
- package/skills/cognitive-load-and-attention-governor/examples/attention-budget-record.json +25 -0
- package/skills/cognitive-load-and-attention-governor/examples/pure-deliverable-sample.md +9 -0
- package/skills/cognitive-load-and-attention-governor/playbooks/agent-to-agent-swarm.md +43 -0
- package/skills/cognitive-load-and-attention-governor/playbooks/human-agent-interaction.md +46 -0
- package/skills/cognitive-load-and-attention-governor/references/attention-metrics.md +83 -0
- package/skills/cognitive-load-and-attention-governor/references/handoff-contracts.md +92 -0
- package/skills/comment-budget-guard/SKILL.md +42 -0
- package/skills/decision-guard/SKILL.md +2 -2
- package/skills/decision-guard/agents/openai.yaml +9 -0
- package/skills/demock-guard/SKILL.md +38 -0
- package/skills/design-system-drift-guard/SKILL.md +50 -0
- package/skills/deterministic-simulation-and-property-testing/SKILL.md +155 -0
- package/skills/deterministic-simulation-and-property-testing/agents/openai.yaml +9 -0
- package/skills/deterministic-simulation-and-property-testing/evals/scenarios.json +110 -0
- package/skills/deterministic-simulation-and-property-testing/examples/deterministic-simulation-record.json +121 -0
- package/skills/deterministic-simulation-and-property-testing/examples/deterministic-simulation-runner.ts +395 -0
- package/skills/deterministic-simulation-and-property-testing/playbooks/README.md +11 -0
- package/skills/deterministic-simulation-and-property-testing/playbooks/microsoft-aws-dst-playbook.md +59 -0
- package/skills/deterministic-simulation-and-property-testing/playbooks/references/simulation-booby-traps.md +39 -0
- package/skills/deterministic-simulation-and-property-testing/playbooks/state-machine-and-fuzzing-playbook.md +46 -0
- package/skills/deterministic-simulation-and-property-testing/references/discrete-event-simulation-and-fault-injection.md +57 -0
- package/skills/deterministic-simulation-and-property-testing/references/property-based-testing-and-shrinking.md +64 -0
- package/skills/deterministic-simulation-and-property-testing/references/simulation-record-contract.md +231 -0
- package/skills/deterministic-simulation-and-property-testing/references/state-machine-modeling-and-type-invariants.md +70 -0
- package/skills/deterministic-simulation-and-property-testing/references/structure-aware-fuzzing-and-parsers.md +78 -0
- package/skills/deterministic-simulation-and-property-testing/usecases/author-property-tests.md +51 -0
- package/skills/deterministic-simulation-and-property-testing/usecases/build-deterministic-simulator.md +53 -0
- package/skills/deterministic-simulation-and-property-testing/usecases/fuzz-parser-boundaries.md +57 -0
- package/skills/deterministic-simulation-and-property-testing/usecases/model-state-machine.md +59 -0
- package/skills/future-scale-gate/agents/openai.yaml +9 -0
- package/skills/grumpy-senior-staff-engineer/SKILL.md +133 -0
- package/skills/grumpy-senior-staff-engineer/agents/openai.yaml +9 -0
- package/skills/grumpy-senior-staff-engineer/evals/scenarios.json +152 -0
- package/skills/grumpy-senior-staff-engineer/playbooks/3am-postmortem-playbook.md +132 -0
- package/skills/grumpy-senior-staff-engineer/playbooks/README.md +79 -0
- package/skills/grumpy-senior-staff-engineer/playbooks/boring-architecture-playbook.md +104 -0
- package/skills/grumpy-senior-staff-engineer/playbooks/references/code-smell-catalog.md +240 -0
- package/skills/grumpy-senior-staff-engineer/references/dependency-tribunal.md +80 -0
- package/skills/grumpy-senior-staff-engineer/references/instant-rejections.md +81 -0
- package/skills/grumpy-senior-staff-engineer/references/operational-survival.md +141 -0
- package/skills/grumpy-senior-staff-engineer/references/simplicity-patterns.md +133 -0
- package/skills/grumpy-senior-staff-engineer/usecases/architecture.md +74 -0
- package/skills/grumpy-senior-staff-engineer/usecases/debug.md +82 -0
- package/skills/grumpy-senior-staff-engineer/usecases/implement.md +94 -0
- package/skills/grumpy-senior-staff-engineer/usecases/review.md +82 -0
- package/skills/honeypot-trap-guard/SKILL.md +42 -0
- package/skills/house-tell-guard/SKILL.md +47 -0
- package/skills/install-anti-slop/SKILL.md +50 -26
- package/skills/install-anti-slop/agents/openai.yaml +9 -0
- package/skills/install-anti-slop/assets/anti-slop/effect/index.ts +8 -0
- package/skills/install-anti-slop/assets/anti-slop/effect/rules/no-manual-effect-error-tag.ts +52 -0
- package/skills/install-anti-slop/assets/anti-slop/effect/rules/no-manual-tag-comparison.ts +45 -0
- package/skills/install-anti-slop/assets/anti-slop/effect/rules/no-manual-tagged-construction.ts +37 -0
- package/skills/install-anti-slop/assets/anti-slop/effect/rules/prefer-effect-match.ts +54 -0
- package/skills/install-anti-slop/assets/anti-slop/effect/shared/tagged-values.ts +97 -0
- package/skills/install-anti-slop/assets/anti-slop/index.ts +6 -0
- package/skills/install-anti-slop/assets/anti-slop/rules/no-array-filter-map.ts +28 -0
- package/skills/install-anti-slop/assets/anti-slop/rules/no-conditional-empty-object-spread.ts +3 -6
- package/skills/install-anti-slop/assets/anti-slop/rules/no-known-value-widening.ts +183 -15
- package/skills/install-anti-slop/assets/anti-slop/rules/no-module-mocking.ts +3 -14
- package/skills/install-anti-slop/assets/anti-slop/rules/no-object-parameters.ts +28 -72
- package/skills/install-anti-slop/assets/anti-slop/rules/no-reduce-accumulator-copy.ts +109 -0
- package/skills/install-anti-slop/assets/anti-slop/rules/no-runtime-typeof.ts +10 -0
- package/skills/install-anti-slop/assets/anti-slop/rules/no-shape-in-symbol-names.ts +8 -1
- package/skills/install-anti-slop/assets/anti-slop/rules/no-unknown-parameters.ts +18 -34
- package/skills/install-anti-slop/assets/anti-slop/rules/no-unknown-returns.ts +30 -64
- package/skills/install-anti-slop/assets/anti-slop/rules/no-unknown-type-aliases.ts +27 -44
- package/skills/install-anti-slop/assets/anti-slop/rules/no-unsafe-dictionary-type.ts +27 -12
- package/skills/install-anti-slop/assets/anti-slop/rules/no-widen-then-assert.ts +12 -24
- package/skills/install-anti-slop/assets/anti-slop/rules/require-readable-spacing.ts +80 -0
- package/skills/install-anti-slop/assets/anti-slop/rules/require-safety-comment-for-type-assertion.ts +80 -11
- package/skills/install-anti-slop/assets/anti-slop/shared/array-method.ts +94 -0
- package/skills/install-anti-slop/assets/anti-slop/shared/dictionary-types.ts +101 -98
- package/skills/install-anti-slop/assets/anti-slop/shared/function-parameters.ts +49 -0
- package/skills/install-anti-slop/assets/anti-slop/shared/reflect-method.ts +2 -13
- package/skills/install-anti-slop/assets/anti-slop/shared/scope.ts +15 -0
- package/skills/install-anti-slop/assets/anti-slop/shared/type-alias-resolution.ts +250 -0
- package/skills/install-anti-slop/assets/anti-slop/vendor/eslint-stylistic/LICENSE +22 -0
- package/skills/install-anti-slop/assets/anti-slop/vendor/eslint-stylistic/UPSTREAM.md +28 -0
- package/skills/install-anti-slop/assets/anti-slop/vendor/eslint-stylistic/padding-line-ast.ts +51 -0
- package/skills/install-anti-slop/assets/anti-slop/vendor/eslint-stylistic/padding-line-between-statements.ts +929 -0
- package/skills/install-anti-slop/assets/anti-slop/vendor/eslint-stylistic/padding-line-options.d.ts +87 -0
- package/skills/install-anti-slop/references/update.md +101 -0
- package/skills/install-anti-slop/scripts/update.mjs +115 -0
- package/skills/mandela-guard/SKILL.md +38 -0
- package/skills/mechanical-sympathy-and-perf-gate/SKILL.md +150 -0
- package/skills/mechanical-sympathy-and-perf-gate/agents/openai.yaml +9 -0
- package/skills/mechanical-sympathy-and-perf-gate/evals/scenarios.json +92 -0
- package/skills/mechanical-sympathy-and-perf-gate/examples/perf-gate-record.json +65 -0
- package/skills/mechanical-sympathy-and-perf-gate/examples/perf-hardened-pipeline.ts +139 -0
- package/skills/mechanical-sympathy-and-perf-gate/playbooks/README.md +82 -0
- package/skills/mechanical-sympathy-and-perf-gate/playbooks/client-runtime-frame-budget-playbook.md +59 -0
- package/skills/mechanical-sympathy-and-perf-gate/playbooks/mechanical-sympathy-systems-playbook.md +52 -0
- package/skills/mechanical-sympathy-and-perf-gate/playbooks/references/hardware-runtime-booby-traps.md +75 -0
- package/skills/mechanical-sympathy-and-perf-gate/references/data-oriented-design-and-cache-physics.md +90 -0
- package/skills/mechanical-sympathy-and-perf-gate/references/flamegraphs-and-empirical-benchmarking.md +81 -0
- package/skills/mechanical-sympathy-and-perf-gate/references/frame-and-latency-budgets-120hz.md +74 -0
- package/skills/mechanical-sympathy-and-perf-gate/references/perf-record-contract.md +217 -0
- package/skills/mechanical-sympathy-and-perf-gate/references/zero-copy-and-streaming-architecture.md +87 -0
- package/skills/mechanical-sympathy-and-perf-gate/usecases/audit-and-eliminate-latency-jank.md +33 -0
- package/skills/mechanical-sympathy-and-perf-gate/usecases/benchmark-and-prove-optimization.md +43 -0
- package/skills/mechanical-sympathy-and-perf-gate/usecases/design-data-oriented-system.md +32 -0
- package/skills/mechanical-sympathy-profiler/SKILL.md +158 -0
- package/skills/mechanical-sympathy-profiler/agents/openai.yaml +9 -0
- package/skills/mechanical-sympathy-profiler/evals/scenarios.json +96 -0
- package/skills/mechanical-sympathy-profiler/examples/batched-streaming-hot-path.ts +179 -0
- package/skills/mechanical-sympathy-profiler/examples/mechanical-sympathy-profiler-record.json +52 -0
- package/skills/mechanical-sympathy-profiler/playbooks/README.md +75 -0
- package/skills/mechanical-sympathy-profiler/playbooks/hardware-memory-and-io-physics-playbook.md +53 -0
- package/skills/mechanical-sympathy-profiler/playbooks/measurement-and-benchmarking-playbook.md +81 -0
- package/skills/mechanical-sympathy-profiler/references/empirical-measurement-and-explain.md +86 -0
- package/skills/mechanical-sympathy-profiler/references/io-batching-and-pipelining.md +77 -0
- package/skills/mechanical-sympathy-profiler/references/memory-hierarchy-and-gc-physics.md +88 -0
- package/skills/mechanical-sympathy-profiler/references/profiler-record-contract.md +177 -0
- package/skills/mechanical-sympathy-profiler/usecases/eliminate-gc-and-memory-bloat.md +27 -0
- package/skills/mechanical-sympathy-profiler/usecases/optimize-database-and-io.md +31 -0
- package/skills/mechanical-sympathy-profiler/usecases/profile-and-benchmark-code.md +28 -0
- package/skills/motion-runtime-guard/SKILL.md +42 -0
- package/skills/observability-and-slo-architect/SKILL.md +117 -0
- package/skills/observability-and-slo-architect/agents/openai.yaml +15 -0
- package/skills/observability-and-slo-architect/evals/scenarios.json +68 -0
- package/skills/observability-and-slo-architect/examples/dapper-monarch-telemetry-pipeline.ts +476 -0
- package/skills/observability-and-slo-architect/examples/observability-slo-record.json +142 -0
- package/skills/observability-and-slo-architect/playbooks/README.md +53 -0
- package/skills/observability-and-slo-architect/playbooks/dapper-opentelemetry-context-propagation-playbook.md +169 -0
- package/skills/observability-and-slo-architect/playbooks/monarch-red-use-metrics-playbook.md +122 -0
- package/skills/observability-and-slo-architect/playbooks/slo-multi-burn-rate-alerting-playbook.md +105 -0
- package/skills/observability-and-slo-architect/references/monarch-and-dapper-architecture.md +64 -0
- package/skills/observability-and-slo-architect/references/observability-slo-record-contract.md +237 -0
- package/skills/observability-and-slo-architect/references/red-and-use-metrics-matrix.md +67 -0
- package/skills/observability-and-slo-architect/references/sli-slo-and-multi-burn-rate-alerting.md +48 -0
- package/skills/observability-and-slo-architect/references/w3c-traceparent-and-async-context-propagation.md +103 -0
- package/skills/observability-and-slo-architect/usecases/define-slo-burn-rate-alerts.md +21 -0
- package/skills/observability-and-slo-architect/usecases/emit-red-and-use-metrics.md +20 -0
- package/skills/observability-and-slo-architect/usecases/enforce-opentelemetry-io-spans.md +22 -0
- package/skills/observability-and-slo-gate/SKILL.md +163 -0
- package/skills/observability-and-slo-gate/agents/openai.yaml +9 -0
- package/skills/observability-and-slo-gate/evals/scenarios.json +79 -0
- package/skills/observability-and-slo-gate/examples/dapper-otel-low-cardinality-telemetry.ts +636 -0
- package/skills/observability-and-slo-gate/examples/observability-slo-record.json +111 -0
- package/skills/observability-and-slo-gate/playbooks/README.md +75 -0
- package/skills/observability-and-slo-gate/playbooks/dapper-opentelemetry-context-propagation-playbook.md +36 -0
- package/skills/observability-and-slo-gate/playbooks/low-cardinality-metrics-and-slo-histograms-playbook.md +45 -0
- package/skills/observability-and-slo-gate/references/low-cardinality-metrics-and-histograms.md +132 -0
- package/skills/observability-and-slo-gate/references/observability-slo-record-contract.md +209 -0
- package/skills/observability-and-slo-gate/references/structured-logs-slis-and-burn-rate-slos.md +76 -0
- package/skills/observability-and-slo-gate/references/w3c-traceparent-and-async-context-propagation.md +132 -0
- package/skills/observability-and-slo-gate/usecases/define-golden-signals-and-burn-rate-slos.md +25 -0
- package/skills/observability-and-slo-gate/usecases/enforce-low-cardinality-metrics-and-histograms.md +24 -0
- package/skills/observability-and-slo-gate/usecases/propagate-w3c-trace-context-across-queues-and-workers.md +23 -0
- package/skills/paranoid-principal-architect/SKILL.md +4 -4
- package/skills/paranoid-principal-architect/agents/openai.yaml +9 -0
- package/skills/paranoid-principal-architect/examples/hardened-idempotent-service.ts +3 -1
- package/skills/paranoid-principal-architect/examples/paranoid-architecture-record.json +5 -0
- package/skills/paranoid-principal-architect/playbooks/architect-playbook.md +2 -2
- package/skills/paranoid-principal-architect/references/threat-record-contract.md +14 -1
- package/skills/paranoid-principal-architect/usecases/architect.md +2 -2
- package/skills/pr-boundary-guard/SKILL.md +47 -0
- package/skills/privacy-and-data-lineage-gate/SKILL.md +113 -0
- package/skills/privacy-and-data-lineage-gate/agents/openai.yaml +9 -0
- package/skills/privacy-and-data-lineage-gate/evals/scenarios.json +90 -0
- package/skills/privacy-and-data-lineage-gate/examples/hardened-privacy-pipeline.ts +231 -0
- package/skills/privacy-and-data-lineage-gate/examples/privacy-lineage-record.json +77 -0
- package/skills/privacy-and-data-lineage-gate/playbooks/README.md +18 -0
- package/skills/privacy-and-data-lineage-gate/playbooks/apple-privacy-playbook.md +55 -0
- package/skills/privacy-and-data-lineage-gate/playbooks/meta-data-infra-playbook.md +80 -0
- package/skills/privacy-and-data-lineage-gate/playbooks/references/privacy-booby-traps.md +85 -0
- package/skills/privacy-and-data-lineage-gate/references/cryptographic-erasure-and-gdpr-shredding.md +64 -0
- package/skills/privacy-and-data-lineage-gate/references/data-lineage-and-flow-policy-graphs.md +70 -0
- package/skills/privacy-and-data-lineage-gate/references/data-minimization-and-retention-ttl.md +73 -0
- package/skills/privacy-and-data-lineage-gate/references/privacy-record-contract.md +190 -0
- package/skills/privacy-and-data-lineage-gate/references/tainted-pii-types-and-compiler-enforcement.md +121 -0
- package/skills/privacy-and-data-lineage-gate/usecases/architect-privacy-system.md +26 -0
- package/skills/privacy-and-data-lineage-gate/usecases/audit-data-lineage.md +18 -0
- package/skills/privacy-and-data-lineage-gate/usecases/implement-tainted-types.md +26 -0
- package/skills/privacy-and-data-lineage-gate/usecases/verify-cryptographic-erasure.md +24 -0
- package/skills/re0-handoff-guard/SKILL.md +42 -0
- package/skills/reduction-guard/SKILL.md +44 -0
- package/skills/repo-memory-and-invariant-steward/SKILL.md +188 -0
- package/skills/repo-memory-and-invariant-steward/agents/openai.yaml +9 -0
- package/skills/repo-memory-and-invariant-steward/evals/scenarios.json +110 -0
- package/skills/repo-memory-and-invariant-steward/examples/decision-record-with-invariants.json +52 -0
- package/skills/repo-memory-and-invariant-steward/examples/drift-violation-sample.diff +13 -0
- package/skills/repo-memory-and-invariant-steward/examples/invariant-ledger-example.json +124 -0
- package/skills/repo-memory-and-invariant-steward/examples/reassessment-trigger-example.json +16 -0
- package/skills/repo-memory-and-invariant-steward/playbooks/README.md +29 -0
- package/skills/repo-memory-and-invariant-steward/playbooks/drift-triage-playbook.md +63 -0
- package/skills/repo-memory-and-invariant-steward/playbooks/references/memory-anti-patterns.md +23 -0
- package/skills/repo-memory-and-invariant-steward/playbooks/steward-playbook.md +44 -0
- package/skills/repo-memory-and-invariant-steward/references/drift-detection-engine.md +27 -0
- package/skills/repo-memory-and-invariant-steward/references/gate0-memory-integration.md +19 -0
- package/skills/repo-memory-and-invariant-steward/references/invariant-ledger-contract.md +49 -0
- package/skills/repo-memory-and-invariant-steward/references/reassessment-protocol.md +36 -0
- package/skills/repo-memory-and-invariant-steward/usecases/drift-audit.md +22 -0
- package/skills/repo-memory-and-invariant-steward/usecases/reassess.md +24 -0
- package/skills/repo-memory-and-invariant-steward/usecases/sync.md +24 -0
- package/skills/root-fix-gate/SKILL.md +1 -1
- package/skills/root-fix-gate/agents/openai.yaml +9 -0
- package/skills/safe-evolution-and-rollout-choreographer/SKILL.md +149 -0
- package/skills/safe-evolution-and-rollout-choreographer/agents/openai.yaml +9 -0
- package/skills/safe-evolution-and-rollout-choreographer/evals/scenarios.json +123 -0
- package/skills/safe-evolution-and-rollout-choreographer/examples/safe-evolution-record.json +58 -0
- package/skills/safe-evolution-and-rollout-choreographer/examples/safe-rollout-choreographer-pipeline.ts +239 -0
- package/skills/safe-evolution-and-rollout-choreographer/playbooks/README.md +9 -0
- package/skills/safe-evolution-and-rollout-choreographer/playbooks/meta-google-sre-rollout-playbook.md +94 -0
- package/skills/safe-evolution-and-rollout-choreographer/playbooks/references/rollout-booby-traps.md +51 -0
- package/skills/safe-evolution-and-rollout-choreographer/playbooks/strangler-fig-modernization-playbook.md +71 -0
- package/skills/safe-evolution-and-rollout-choreographer/references/dark-launches-and-shadow-reads.md +82 -0
- package/skills/safe-evolution-and-rollout-choreographer/references/feature-flag-lifecycle-and-killswitch.md +81 -0
- package/skills/safe-evolution-and-rollout-choreographer/references/rollout-record-contract.md +220 -0
- package/skills/safe-evolution-and-rollout-choreographer/references/strangler-fig-protocol.md +73 -0
- package/skills/safe-evolution-and-rollout-choreographer/references/wire-compatibility-n-minus-one.md +86 -0
- package/skills/safe-evolution-and-rollout-choreographer/usecases/audit-wire-compatibility.md +42 -0
- package/skills/safe-evolution-and-rollout-choreographer/usecases/choreograph-rollout.md +52 -0
- package/skills/safe-evolution-and-rollout-choreographer/usecases/strangle-legacy-system.md +45 -0
- package/skills/scientific-fault-isolation/SKILL.md +148 -0
- package/skills/scientific-fault-isolation/agents/openai.yaml +9 -0
- package/skills/scientific-fault-isolation/evals/scenarios.json +95 -0
- package/skills/scientific-fault-isolation/examples/deterministic-race-reproducer.ts +173 -0
- package/skills/scientific-fault-isolation/examples/scientific-fault-isolation-record.json +74 -0
- package/skills/scientific-fault-isolation/playbooks/README.md +71 -0
- package/skills/scientific-fault-isolation/playbooks/deterministic-concurrency-playbook.md +60 -0
- package/skills/scientific-fault-isolation/playbooks/differential-diagnosis-playbook.md +65 -0
- package/skills/scientific-fault-isolation/references/binary-search-and-bisect.md +76 -0
- package/skills/scientific-fault-isolation/references/determinism-pinning.md +71 -0
- package/skills/scientific-fault-isolation/references/differential-diagnosis-matrix.md +55 -0
- package/skills/scientific-fault-isolation/references/fault-isolation-record-contract.md +160 -0
- package/skills/scientific-fault-isolation/usecases/binary-search-isolation.md +38 -0
- package/skills/scientific-fault-isolation/usecases/deflake-race-condition.md +33 -0
- package/skills/scientific-fault-isolation/usecases/differential-diagnosis.md +30 -0
- package/skills/styleseed-guard/SKILL.md +116 -0
- package/skills/tagore-guard/SKILL.md +164 -0
- package/skills/tagore-guard/evals/evals.json +50 -0
- package/skills/tagore-guard/examples/clean-tagore-record.json +37 -0
- package/skills/tagore-guard/examples/pr-description-with-scores.md +112 -0
- package/skills/tagore-guard/references/engineering-discourse-catalog.md +155 -0
- package/skills/tagore-guard/references/handoff-contracts.md +92 -0
- package/skills/tagore-guard/references/scoring-rubric-and-floors.md +96 -0
- package/skills/tagore-guard/references/voice-calibration.md +79 -0
- package/skills/type-level-and-ast-slop-gate/SKILL.md +101 -0
- package/skills/type-level-and-ast-slop-gate/agents/openai.yaml +7 -0
- package/skills/type-level-and-ast-slop-gate/examples/ast-slop-record.json +13 -0
- package/skills/type-level-and-ast-slop-gate/examples/clean-typed-service.ts +74 -0
- package/skills/type-level-and-ast-slop-gate/playbooks/type-slop-remediation-playbook.md +102 -0
- package/skills/type-level-and-ast-slop-gate/references/ast-slop-taxonomies.md +185 -0
- package/skills/type-level-and-ast-slop-gate/usecases/audit-ast-slop.md +43 -0
- package/skills/ui-and-copy-discipline/SKILL.md +89 -0
- package/skills/verification-oracle-architect/SKILL.md +167 -0
- package/skills/verification-oracle-architect/agents/openai.yaml +9 -0
- package/skills/verification-oracle-architect/evals/scenarios.json +92 -0
- package/skills/verification-oracle-architect/examples/verification-oracle-record.json +75 -0
- package/skills/verification-oracle-architect/examples/verified-fake-property-chaos-oracle.ts +446 -0
- package/skills/verification-oracle-architect/playbooks/README.md +75 -0
- package/skills/verification-oracle-architect/playbooks/property-based-and-deterministic-chaos-playbook.md +61 -0
- package/skills/verification-oracle-architect/playbooks/verified-fakes-and-contract-suites-playbook.md +87 -0
- package/skills/verification-oracle-architect/references/deterministic-chaos-and-fault-injection.md +133 -0
- package/skills/verification-oracle-architect/references/property-based-and-metamorphic-testing.md +102 -0
- package/skills/verification-oracle-architect/references/verification-oracle-record-contract.md +201 -0
- package/skills/verification-oracle-architect/references/verified-in-memory-fakes-and-contracts.md +208 -0
- package/skills/verification-oracle-architect/usecases/author-property-and-metamorphic-suite.md +22 -0
- package/skills/verification-oracle-architect/usecases/build-verified-in-memory-fake.md +26 -0
- package/skills/verification-oracle-architect/usecases/run-deterministic-chaos-simulation.md +24 -0
- package/skills/zero-downtime-migration-gate/SKILL.md +148 -0
- package/skills/zero-downtime-migration-gate/agents/openai.yaml +9 -0
- package/skills/zero-downtime-migration-gate/evals/scenarios.json +97 -0
- package/skills/zero-downtime-migration-gate/examples/expand-migrate-contract-pipeline.ts +125 -0
- package/skills/zero-downtime-migration-gate/examples/zero-downtime-migration-record.json +58 -0
- package/skills/zero-downtime-migration-gate/playbooks/README.md +72 -0
- package/skills/zero-downtime-migration-gate/playbooks/spanner-schema-evolution-playbook.md +53 -0
- package/skills/zero-downtime-migration-gate/playbooks/stripe-contract-evolution-playbook.md +68 -0
- package/skills/zero-downtime-migration-gate/references/expand-migrate-contract.md +116 -0
- package/skills/zero-downtime-migration-gate/references/lock-free-sql-patterns.md +122 -0
- package/skills/zero-downtime-migration-gate/references/migration-record-contract.md +160 -0
- package/skills/zero-downtime-migration-gate/references/wire-compatibility-matrix.md +92 -0
- package/skills/zero-downtime-migration-gate/usecases/author-migration.md +66 -0
- package/skills/zero-downtime-migration-gate/usecases/plan-evolution.md +57 -0
- package/skills/zero-downtime-migration-gate/usecases/review-migration.md +47 -0
package/.skills.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://skills.sh/schema.json",
|
|
3
3
|
"name": "anti-slop-engineering",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.7.0",
|
|
5
5
|
"description": "An Engineering Discipline Playbook & Guard System for AI Coding Agents. Enforces Google SRE, Clean-Room Senior Dev Ladders, and Rust/Go Microservices.",
|
|
6
6
|
"repository": "https://github.com/imMamdouhaboammar/anti-slop-engineering",
|
|
7
7
|
"author": "Mamdouh Aboammar",
|
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
[](https://skills.sh)
|
|
13
13
|
[](https://claude.ai)
|
|
14
14
|
|
|
15
|
-
[Install](#install) · [What it catches](#what-it-catches) · [Engines](#engines) · [Decision Guard](#decision-guard) · [Root-Fix Gate](#root-fix-gate) · [Future-Scale Gate](#future-scale-gate) · [Paranoid Architect](#the-paranoid-principal-architect) · [Forensic Bug Hunter](#forensic-bug-hunter-scanner) · [Execution Guard](#in-flight-execution-guard) · [Install Anti-Slop](#install-anti-slop-oxlint--skill) · [Agent skill](#agent-skill) · [Anti-pattern catalog](#anti-pattern-catalog-217-patterns)
|
|
15
|
+
[Install](#install) · [What it catches](#what-it-catches) · [Engines](#engines) · [Decision Guard](#decision-guard) · [Root-Fix Gate](#root-fix-gate) · [Future-Scale Gate](#future-scale-gate) · [Paranoid Architect](#the-paranoid-principal-architect) · [Forensic Bug Hunter](#forensic-bug-hunter-scanner) · [Execution Guard](#in-flight-execution-guard) · [AST Slop Gate](#type-level--ast-slop-gate) · [Install Anti-Slop](#install-anti-slop-oxlint--skill) · [Agent skill](#agent-skill) · [Anti-pattern catalog](#anti-pattern-catalog-217-patterns)
|
|
16
16
|
|
|
17
17
|
</div>
|
|
18
18
|
|
|
@@ -285,6 +285,22 @@ bunx anti-slop-engineering paranoid audit skills/paranoid-principal-architect/ex
|
|
|
285
285
|
|
|
286
286
|
---
|
|
287
287
|
|
|
288
|
+
## Observability & SLO Architect (Google Monarch & Dapper)
|
|
289
|
+
|
|
290
|
+
The [Observability & SLO Architect](skills/observability-and-slo-architect/SKILL.md) skill transforms observability from passive `logger.error` statements into a proactive telemetry architecture following Google Monarch & Dapper specifications:
|
|
291
|
+
|
|
292
|
+
1. **OpenTelemetry by Default:** Binds every network I/O, database query, cache fetch, and queue operation to standard Spans with unbroken W3C `traceparent` (`00-<traceId>-<spanId>-<flags>`) and `correlation_id` context propagation.
|
|
293
|
+
2. **Google Monarch Low-Cardinality Discipline:** Strictly separates low-cardinality time-series metrics ($\prod |L_i| \le 1,000$) from high-cardinality traces and logs. Collapses unmatched 404 paths to `"__unmatched__"` to neutralize TSDB cardinality denial-of-service attacks.
|
|
294
|
+
3. **Automated RED & USE Metrics:** Automatically emits Rate, Errors, and Duration (Histograms with P50/P95/P99 quantiles and Trace Exemplars) for endpoints, and Utilization, Saturation, and Errors for resources (CPU, Memory, DB Connection Pools, Worker Queues).
|
|
295
|
+
4. **SLI/SLO-Driven Alerts:** Bans non-impact threshold alerts (e.g. CPU > 80%). Production alerts are gated strictly on Google SRE Multi-Window Multi-Burn-Rate Error Budget policies (14.4x 1h/5m for paging; 6.0x 6h/30m for ticketing).
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
# Audit an Observability & SLO record and scan source files for cardinality or tracing hazards:
|
|
299
|
+
bunx anti-slop-engineering observability audit skills/observability-and-slo-architect/examples/observability-slo-record.json --source skills/observability-and-slo-architect/examples/dapper-monarch-telemetry-pipeline.ts --json
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
288
304
|
## Forensic Bug Hunter Scanner
|
|
289
305
|
|
|
290
306
|
Zero-trust static analysis scanner across 9 application stacks detecting booby traps, concurrency leaks, race conditions, memory leaks, and EDoS vulnerabilities:
|
|
@@ -302,6 +318,42 @@ Modular playbooks and architectural checklists are located in [`skills/paranoid-
|
|
|
302
318
|
|
|
303
319
|
---
|
|
304
320
|
|
|
321
|
+
## Apple Craft & Interaction Physics
|
|
322
|
+
|
|
323
|
+
The [Apple Craft & Interaction Physics module](skills/apple-craft-and-interaction-physics/SKILL.md) elevates client user interfaces from baseline hygiene to Apple HIG design engineering excellence. It enforces four physical pillars:
|
|
324
|
+
|
|
325
|
+
1. **Exhaustive UI State Matrix:** Eliminates boolean soup in favor of typed Discriminated Union state machines handling all 8 operational states (`loading_skeleton`, `empty`, `partial_error`, `offline`, `optimistic_rollback`, `loaded_fresh`, `revalidating_stale`, and `terminal_error`) with compile-time exhaustiveness.
|
|
326
|
+
2. **Zero Layout Shift (CLS = 0.000):** Strictly pre-reserves dynamic element geometry, skeleton dimensions, media aspect ratios, and stable scrollbar gutters.
|
|
327
|
+
3. **Interruptible Physics & Velocity Continuity:** Mandates mass-spring-damper motion ($F = -kx - cv$) with immediate gesture interruption, momentum handover ($v_0$), compositor-only execution, and epsilon termination ($\epsilon \le 10^{-4}$).
|
|
328
|
+
4. **Keyboard & Focus Mastery:** Guarantees full keyboard operability, high-contrast `:focus-visible` rings with offset (bans naked `outline: none`), modal focus trapping with return restoration, and polite ARIA live regions.
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
# Audit an assessment record and scan component for layout thrashing, transition:all, or bare outline:none:
|
|
332
|
+
node bin/cli.js apple-craft audit skills/apple-craft-and-interaction-physics/examples/apple-craft-record.json --source skills/apple-craft-and-interaction-physics/examples/interactive-craft-component.ts --json
|
|
333
|
+
|
|
334
|
+
# Package CLI invocation:
|
|
335
|
+
bunx anti-slop-engineering apple-craft audit path/to/record.json --json
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Type-Level & AST Slop Gate
|
|
341
|
+
|
|
342
|
+
Prevents evidence fabrication, quadratic reductions, eager array allocations, and test-oracle erosion in TypeScript and JavaScript. Runs across two complementary tiers:
|
|
343
|
+
|
|
344
|
+
```bash
|
|
345
|
+
# Tier 1: Zero-dependency pre-commit diff scan (<100ms):
|
|
346
|
+
bunx anti-slop-engineering ast --base HEAD
|
|
347
|
+
|
|
348
|
+
# Direct file or directory sweep:
|
|
349
|
+
bunx anti-slop-engineering ast src/ --json
|
|
350
|
+
|
|
351
|
+
# Strict gate (exit code 2 on blockers):
|
|
352
|
+
bunx anti-slop-engineering ast --base origin/main --strict
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
305
357
|
## Install Anti-Slop (Oxlint & Skill)
|
|
306
358
|
|
|
307
359
|
Opinionated anti-slop Oxlint lint rules and agent skill for TypeScript and JavaScript codebases. Catches runtime type assertion risks, unconstrained object parameters, type widening, and module mocking leaks at lint-time:
|
|
@@ -310,16 +362,17 @@ Opinionated anti-slop Oxlint lint rules and agent skill for TypeScript and JavaS
|
|
|
310
362
|
|
|
311
363
|
Invoke `/install-anti-slop` in any supported AI coding agent (Claude Code, Antigravity, Gemini CLI, Cursor, Windsurf) to automatically inspect the target repository, detect package managers, vendor the AST plugins, and configure `oxlint.config.ts` or `.oxlintrc.json`.
|
|
312
364
|
|
|
313
|
-
###
|
|
365
|
+
### Install & Update Vendored Oxlint Plugin
|
|
314
366
|
|
|
315
367
|
```bash
|
|
316
368
|
# Install Oxlint plugin directly into target repository (creates tools/oxlint/anti-slop/):
|
|
317
369
|
bunx anti-slop-engineering install-oxlint
|
|
318
|
-
|
|
319
|
-
|
|
370
|
+
|
|
371
|
+
# Reconcile and update vendored rules while preserving local custom modifications:
|
|
372
|
+
bunx anti-slop-engineering update-oxlint tools/oxlint/anti-slop --apply
|
|
320
373
|
```
|
|
321
374
|
|
|
322
|
-
|
|
375
|
+
Register the generic and optional Effect plugins in `oxlint.config.ts` or `.oxlintrc.json`:
|
|
323
376
|
|
|
324
377
|
```ts
|
|
325
378
|
// oxlint.config.ts or .oxlintrc.json
|
|
@@ -332,9 +385,13 @@ export default {
|
|
|
332
385
|
"tools/oxlint/anti-slop/**"
|
|
333
386
|
],
|
|
334
387
|
jsPlugins: [
|
|
335
|
-
{ name: "anti-slop", specifier: "./tools/oxlint/anti-slop/index.ts" }
|
|
388
|
+
{ name: "anti-slop", specifier: "./tools/oxlint/anti-slop/index.ts" },
|
|
389
|
+
{ name: "anti-slop-effect", specifier: "./tools/oxlint/anti-slop/effect/index.ts" }
|
|
336
390
|
],
|
|
337
391
|
rules: {
|
|
392
|
+
"oxc/no-accumulating-spread": "error",
|
|
393
|
+
"anti-slop/no-array-filter-map": "error",
|
|
394
|
+
"anti-slop/no-reduce-accumulator-copy": "error",
|
|
338
395
|
"anti-slop/no-chained-type-assertions": "error",
|
|
339
396
|
"anti-slop/no-conditional-empty-object-spread": "error",
|
|
340
397
|
"anti-slop/no-known-value-widening": "error",
|
|
@@ -349,7 +406,13 @@ export default {
|
|
|
349
406
|
"anti-slop/no-unknown-type-aliases": "error",
|
|
350
407
|
"anti-slop/no-unsafe-dictionary-type": "error",
|
|
351
408
|
"anti-slop/no-widen-then-assert": "error",
|
|
352
|
-
"anti-slop/require-
|
|
409
|
+
"anti-slop/require-readable-spacing": "error",
|
|
410
|
+
"anti-slop/require-safety-comment-for-type-assertion": "error",
|
|
411
|
+
"anti-slop-effect/no-manual-effect-error-tag": "error",
|
|
412
|
+
"anti-slop-effect/no-manual-tag-comparison": "error",
|
|
413
|
+
"anti-slop-effect/no-manual-tagged-construction": "error",
|
|
414
|
+
"anti-slop-effect/no-service-constructor-imports": "error",
|
|
415
|
+
"anti-slop-effect/prefer-effect-match": "error"
|
|
353
416
|
}
|
|
354
417
|
};
|
|
355
418
|
```
|
|
@@ -382,6 +445,74 @@ bunx anti-slop-engineering cases
|
|
|
382
445
|
|
|
383
446
|
---
|
|
384
447
|
|
|
448
|
+
## Cognitive Bandwidth & Attention Economy Governor
|
|
449
|
+
|
|
450
|
+
Inspired by human attention scarcity, scannability science, and executive cognitive load reduction (attention-span & i-have-adhd), the Attention Governor statically audits agent responses, PR descriptions, standup briefs, and multi-agent TOON handoffs against 5 deterministic cognitive invariants:
|
|
451
|
+
|
|
452
|
+
| Metric | Target | Failure / Blocker |
|
|
453
|
+
| --- | --- | --- |
|
|
454
|
+
| **Terminal Blocking Placement ($\mathcal{B}_{pos}$)** | Last block | Question buried mid-reply before trailing status prose |
|
|
455
|
+
| **Line-1 Skimmer Flag** | Explicit flag on line 1 | Asks in long replies ($\ge 40$ words) without a line-1 prompt |
|
|
456
|
+
| **Deliverable Purity ($\mathcal{P}_{deliv}$)** | 100% clean payload | Opener wrappers (`Here is...`), closer offers (`Hope this helps!`), and lead-ins |
|
|
457
|
+
| **Time-to-Point ($TTP$)** | $\le 20$ words | Answers buried behind conversational preamble |
|
|
458
|
+
| **Max Wall Words ($W_{max}$)** | $\le 60$ words | Dense, anchor-free prose paragraphs causing cognitive bounce |
|
|
459
|
+
| **Working Memory Cap ($\mathcal{M}_{cap}$)** | $\le 5$ items | Unchunked flat lists exceeding working memory capacity |
|
|
460
|
+
| **Non-Regression Gate** | 100% preservation | Dropped numeric thresholds, scoped conditions, or safety caveats |
|
|
461
|
+
|
|
462
|
+
```bash
|
|
463
|
+
# Audit markdown documentation for cognitive scannability:
|
|
464
|
+
bunx anti-slop-engineering attention --file docs/rfc.md --json
|
|
465
|
+
|
|
466
|
+
# Verify 100% deliverable purity on generated commit message or PR body:
|
|
467
|
+
bunx anti-slop-engineering attention --text "$COMMIT_MSG" --check-deliverable
|
|
468
|
+
|
|
469
|
+
# Audit git diff additions across documentation:
|
|
470
|
+
bunx anti-slop-engineering attention --base HEAD
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## Tagore Engineering Discourse & Substance Guard
|
|
476
|
+
|
|
477
|
+
Inspired by Rabindranath Tagore's literary philosophy of restraint, empirical specificity, and authentic human voice over statistical predictability and mechanical puffery, Tagore Guard audits PR descriptions, commit messages, ADRs, documentation, and agent reasoning traces against a dual-direction attack:
|
|
478
|
+
|
|
479
|
+
1. **Scrub the Tells:** Eliminates 29 cataloged AI tells (significance inflation, copula avoidance, superficial -ing chains, rule-of-three, em-dash addiction, and marketing hype).
|
|
480
|
+
2. **Inject the Substance:** Mandates active engineering agency, empirical measurements, and explicit operational trade-offs/failure modes.
|
|
481
|
+
|
|
482
|
+
### 8-Dimension Scoring Rubric
|
|
483
|
+
|
|
484
|
+
$$\text{Total Score} \ge 56/80 \quad \land \quad \text{Mechanics} \ge 35/50 \quad \land \quad \text{Substance} \ge 21/30$$
|
|
485
|
+
|
|
486
|
+
| Category | Dimension | Max | Floor | Focus |
|
|
487
|
+
| --- | --- | :---: | :---: | --- |
|
|
488
|
+
| **Mechanics** | Directness | 10 | — | Immediate technical statements; zero announcements or throat-clearing |
|
|
489
|
+
| | Rhythm | 10 | — | Varied sentence length cadence ($\text{stddev} \ge 5.0$); no em-dash crutches |
|
|
490
|
+
| | Trust | 10 | — | Zero affordance narration, zero hand-holding, zero servile hedging |
|
|
491
|
+
| | Authenticity | 10 | — | Free of AI buzzwords (`delve`, `tapestry`, `testament`), copula avoidance, and triads |
|
|
492
|
+
| | Density | 10 | — | Free of filler phrases (`in order to`), bolding abuse, and passive voice ($< 35\%$) |
|
|
493
|
+
| *Subtotal* | **Mechanics Floor** | **50** | **35** | *Substance cannot mask slop-shaped mechanics* |
|
|
494
|
+
| **Substance** | Specificity | 10 | — | Empirical numbers, benchmark percentages, latencies, and exact file paths |
|
|
495
|
+
| | Restraint | 10 | — | Achievements sized at actual technical magnitude; zero promotional puffery |
|
|
496
|
+
| | Technical Voice | 10 | — | Explicit trade-offs, concurrency race conditions, and failure modes |
|
|
497
|
+
| *Subtotal* | **Substance Floor** | **30** | **21** | *Mechanics cannot mask sterile, soulless wire-copy* |
|
|
498
|
+
| **Total** | **Pass Gate** | **80** | **56** | *Both floors + $\ge 56$ required for `PROCEED`* |
|
|
499
|
+
|
|
500
|
+
```bash
|
|
501
|
+
# Audit inline text with suggested deslopping rewrites:
|
|
502
|
+
bunx anti-slop-engineering tagore --text "$PR_BODY" --suggest
|
|
503
|
+
|
|
504
|
+
# Audit markdown documentation or ADR file:
|
|
505
|
+
bunx anti-slop-engineering tagore --file docs/adr/ADR-007.md --json
|
|
506
|
+
|
|
507
|
+
# Calibrate repository voice profile against maintainer ground truth:
|
|
508
|
+
bunx anti-slop-engineering tagore --calibrate README.md
|
|
509
|
+
|
|
510
|
+
# Inspect active repository voice profile:
|
|
511
|
+
bunx anti-slop-engineering tagore --profile
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
---
|
|
515
|
+
|
|
385
516
|
## Agent skill
|
|
386
517
|
|
|
387
518
|
The agent skill wires Anti-Slop Engineering into your AI coding agent's context. Once installed, code changes are guided by the Seven Gates, the 217-pattern anti-pattern catalog, and the Google SRE enforcement rules.
|
|
@@ -424,7 +555,7 @@ Spotted a recurring failure mode from an AI agent — test tampering, scope cree
|
|
|
424
555
|
2. Document symptom, root cause, and remediation using the 5-part catalog schema.
|
|
425
556
|
3. Update [`SKILL.md`](SKILL.md) with explicit agent rules.
|
|
426
557
|
4. Add heuristics to `scripts/diff_guard.py` with unit tests.
|
|
427
|
-
5. Run `make check` — all
|
|
558
|
+
5. Run `make check-all` — all unit and polyglot tests (458 Python, 21 Rust, 14 Go, 49 Node/Bun) and linters must stay green.
|
|
428
559
|
|
|
429
560
|
```bash
|
|
430
561
|
npx anti-slop-engineering contribute
|
package/SKILL.md
CHANGED
|
@@ -4,7 +4,7 @@ description: Prevent, detect, and repair AI coding slop and dirty engineering in
|
|
|
4
4
|
author: Mamdouh Aboammar <mamdouhfces1997@gmail.com>
|
|
5
5
|
license: MIT
|
|
6
6
|
metadata:
|
|
7
|
-
version: "1.
|
|
7
|
+
version: "1.7.0"
|
|
8
8
|
focus: "engineering-discipline"
|
|
9
9
|
repository: "https://github.com/imMamdouhaboammar/anti-slop-engineering"
|
|
10
10
|
---
|
|
@@ -41,6 +41,16 @@ metadata:
|
|
|
41
41
|
16. **Root-Fix Gate for scattered symptom patches:** When a local behavior change spreads through controllers, views, endpoints or multiple layers, read [Root-Fix Gate](skills/root-fix-gate/SKILL.md). Trace the owner of the domain invariant, compare a coherent source correction with consumer workarounds, and inspect actual change paths. Do not assume the model owns every rule or that few files prove safety.
|
|
42
42
|
17. **Future-Scale Gate for irreversible foundations:** Before locking in a core runtime, public contract, persistence model, or platform boundary for a long-lived product, read [Future-Scale Gate](skills/future-scale-gate/SKILL.md). Establish credible future operating scenarios, assess reversal cost and run a bounded evolution proof. Design the cheap necessary foundation now; defer speculative infrastructure with measurable revisit triggers. Lack of a present bottleneck does not disprove future architectural constraints.
|
|
43
43
|
18. **Paranoid Principal Architect for 10M scale & zero-trust:** When designing system architectures, generating backend/frontend code, refactoring critical paths, conducting adversarial security reviews, or diagnosing scale bottlenecks, race conditions, memory leaks, and EDoS vulnerabilities, read [Paranoid Principal Architect](skills/paranoid-principal-architect/SKILL.md). Enforce the 10,000,000 Concurrent Users Axiom and Active Battlefield Zero-Trust mindset. Reject happy-path assumptions, unbounded async loops, hot keys, client authority, and unparsed inputs from line one.
|
|
44
|
+
19. **Deterministic Simulation & Property Testing (MSR & AWS Rigor):** When verifying distributed consensus, stateful lifecycles, concurrency protocols, serialization codecs, or untrusted boundaries, read [Deterministic Simulation & Property Testing](skills/deterministic-simulation-and-property-testing/SKILL.md). Reject example-based test complacency: mandate Property-Based Testing (fast-check, Hypothesis, proptest) generating >= 1,000 inputs with automated shrinking to discover minimal failing counterexamples; mandate Deterministic Simulation Testing (DST) with a virtual clock and 64-bit reproducible seed (simulating packet drops, clock skews, and message reordering; zero unseeded `Math.random()` or wall-clock sleeps); enforce explicit State Transition Tables with impossible states made unrepresentable in the type system; and enforce Structure-Aware Fuzzing on all parsers and deserializers asserting crash freedom, bounded recursion (<= 16), and payload byte caps (<= 10MB).
|
|
45
|
+
20. **Privacy & Data Lineage Gate (Apple Privacy & Meta Data Infra):** When designing user data architectures, processing PII/sensitive customer data, implementing GDPR/CCPA deletion lifecycles, or designing analytics/telemetry pipelines, read [Privacy & Data Lineage Gate](skills/privacy-and-data-lineage-gate/SKILL.md). Protect user data from the system itself: wrap all sensitive personal attributes in compiler-enforced branded Tainted PII types (`Redacted<T>`) with unredacted logging and serialization banned; mandate Cryptographic Erasure (Crypto-Shredding via KMS key-per-subject envelope encryption) ensuring account deletion instantaneously destroys the encryption key rendering distributed cold backups, append-only WALs, and multi-tier caches permanently unreadable; enforce Data Minimization & Mandatory Retention TTL by rejecting any table, document schema, or cache storing user data without an explicit purpose binding and automated TTL garbage collection; and maintain an audited Data Lineage DAG with telemetry egress strictly fenced against an allowlist and differential privacy ($\epsilon \le 1.0$).
|
|
46
|
+
21. **Type-Level & AST Slop Gate (Oxlint & Strict AST Discipline):** When writing or auditing TypeScript/JavaScript code, refactoring contracts, or configuring linters, read [Type-Level & AST Slop Gate](skills/type-level-and-ast-slop-gate/SKILL.md). Enforce the 18 generic and 5 Effect AST rules: eliminate chained type assertions (`as unknown as T`), ungrounded assertions (`as T` without nearby `// SAFETY:` invariant justification), quadratic reducer accumulator copies, eager array `.filter().map()` chaining, conditional empty spreads `...(c ? { x } : {})`, and test-oracle erosion via module mocking (`vi.mock()`). Audit diffs with `bunx anti-slop-engineering ast --base HEAD` and vendor Oxlint plugins via `bunx anti-slop-engineering install-oxlint`.
|
|
47
|
+
22. **API Ergonomics & Contract Governor (Microsoft TypeScript & Stripe DX):** When designing public SDKs, library interfaces, CLI commands, or internal module boundaries, read [API Ergonomics & Contract Governor](skills/api-ergonomics-and-contract-governor/SKILL.md). Enforce Pit-of-Success defaults (safe timeouts <=10s, automatic idempotent retries with full jitter, default bounded pagination), render illegal states unrepresentable via tagged discriminated unions and nominal branded types (`CustomerId`, `PaymentIntentId`), structure progressive disclosure across 3 tiers (1-liner common facade -> typed options bag -> raw transport/streaming power engine), and standardize all machine and network errors on RFC 9457 Problem Details with deterministic machine codes and remediation guidance. Audit contract records with `npx anti-slop-engineering contract audit <record.json> --json`.
|
|
48
|
+
23. **UI Craftsmanship, Copywriting & WCAG 2.2 Contrast Discipline:** When generating or modifying frontend user interfaces, styling, components, or marketing/product copy, read [UI & Copywriting Discipline](skills/ui-and-copy-discipline/SKILL.md). Enforce the 5 Craftsmanship Standards (C-1 Intentionality, C-2 Functional Completeness, C-3 Content-Driven Composition, C-4 Resilience & WCAG 2.2 Contrast, C-5 Performance & Motion). All visual techniques must pass the Purpose Test. Low-contrast text (<4.5:1 for normal, <3:1 for large), uniform pill buttons on inputs, decorative comment banners (`// =====`), generic AI gradient cliches (`from-blue-500 via-purple-500 to-pink-500`), and AI marketing hyperbole ("Unleash the power of AI") are strictly flagged. Verify contrast with `bunx anti-slop-engineering contrast "#FFFFFF" "#1E293B"` or `bunx anti-slop-engineering contrast --scan src/`.
|
|
49
|
+
24. **Apple Craft & Interaction Physics (Apple HIG & Design Engineering):** When building, refactoring, or auditing user interfaces, transitions, animations, or client state flows, read [Apple Craft & Interaction Physics](skills/apple-craft-and-interaction-physics/SKILL.md). Enforce the Four Physical Pillars: (1) Exhaustive UI State Matrix covering loading_skeleton, empty, partial_error, offline, and optimistic_rollback via Discriminated Unions with compile-time exhaustiveness; (2) Zero Cumulative Layout Shift (CLS = 0.000) via pre-reserved geometry for skeletons, images, dynamic error slots, and scrollbar-gutter: stable; (3) Interruptible Physics with velocity continuity ($F = -kx - cv$), immediate cancellation on user intent change, compositor-only transform/opacity, and epsilon-terminated rAF ($\epsilon \le 10^{-4}$); and (4) Keyboard & Focus Mastery with high-contrast :focus-visible rings (never unstyled outline: none), modal focus trap and restoration, roving tabindex for composite controls, and ARIA live regions. Audit records with `npx anti-slop-engineering apple-craft audit <record.json> --json`.
|
|
50
|
+
25. **Observability & SLO Architect (Google Monarch & Dapper Telemetry):** When designing telemetry architectures, instrumenting APIs, background queues, outbox workers, or database queries, read [Observability & SLO Architect](skills/observability-and-slo-architect/SKILL.md). Transform observability into proactive engineering: enforce OpenTelemetry by default with unbroken W3C `traceparent` (`00-<trace_id>-<span_id>-<flags>`) and `correlation_id` across every synchronous RPC, message broker hop (Kafka, SQS, RabbitMQ, BullMQ), Transactional Outbox, and SQLcommenter database span; mandate Google Monarch stream pre-aggregation discipline by strictly banning dynamic identifiers (`user_id`, `request_id`, `order_id`, `email`, raw URLs) in metric labels ($\prod |L_i| \le 1,000$) and collapsing unmatched 404 routes to `"__unmatched__"`; measure latencies exclusively via explicit-bucket Histograms with Trace Exemplars (never Gauge averages); emit automated RED metrics (Rate, Errors, Duration) for endpoints and USE metrics (Utilization, Saturation, Errors) for resources; and ban non-impact threshold alerts (e.g. CPU > 80%), gating production alerts strictly on Google SRE Multi-Window Multi-Burn-Rate Error Budget policies (14.4x 1h/5m for paging; 6.0x 6h/30m for ticketing). Audit telemetry records with `npx anti-slop-engineering observability audit <record.json> [--source <file>] --json`.
|
|
51
|
+
26. **Repo Memory & Invariant Steward (Architectural Memory & Zero-Drift Defense):** When designing architectures, conducting PR reviews, starting tasks at Gate 0, or evolving contracts, read [Repo Memory & Invariant Steward](skills/repo-memory-and-invariant-steward/SKILL.md). Prevent architectural amnesia across sessions: sync historical decision records into the compact Invariant Ledger (`.anti-slop/invariant-ledger.json` and `.anti-slop/invariant-ledger.toon`), enforce Gate 0 ingestion of active invariants before modifying governed paths, audit PRs for architectural drift (`bunx anti-slop-engineering steward drift --base HEAD`), and require formal Reassessment Triggers (`reassessment-trigger.json`) before modifying or superseding established invariants. Audit ledger records with `bunx anti-slop-engineering steward audit <file> --json`.
|
|
52
|
+
27. **Cognitive Bandwidth & Attention Economy Governor:** When communicating with users, drafting pull request descriptions, generating standalone deliverables, authoring documentation, or orchestrating multi-agent handoffs, read [Cognitive Bandwidth & Attention Governor](skills/cognitive-load-and-attention-governor/SKILL.md). Enforce scannability metrics ($TTP \le 20$ words, $W_{max} \le 60$ words, anchor density $\ge 3.0$ anchors per 100 words), terminal blocking-question placement, deliverable purity (zero opener/closer fluff), working memory bounding ($\le 5$ items), and non-regression discipline. Audit records with `bunx anti-slop-engineering attention --file <file> --json`.
|
|
53
|
+
28. **Tagore Engineering Discourse & Substance Guard:** When drafting, editing, or auditing pull request descriptions, git commit messages, Architectural Decision Records (ADRs), documentation, state notes, or agent reasoning traces, read [Tagore Engineering Discourse Guard](skills/tagore-guard/SKILL.md). Eliminate the 29 cataloged AI tells (significance inflation, copula avoidance, superficial -ing chains, rule-of-three, em-dash addiction, and promotional hype); mandate active engineering agency and empirical measurements; enforce the 8-Dimension Scoring Matrix with non-negotiable Mechanics ($\ge 35/50$) and Substance ($\ge 21/30$) subtotal floors ($\text{Total} \ge 56/80$); calibrate prose to repository ground truth via `.anti-slop/voice-profile.json`; and run the self-audit reflection loop before delivering. Audit with `bunx anti-slop-engineering tagore --file <file> --json`.
|
|
44
54
|
|
|
45
55
|
## Activation / modes
|
|
46
56
|
|
|
@@ -50,11 +60,27 @@ Select the relevant mode and follow the same gates:
|
|
|
50
60
|
- **FIX:** reproduce observed bug first, fix smallest root cause, prove regression tests hold.
|
|
51
61
|
- **REVIEW:** read-only diff and repository-context audit; report findings with severity, evidence, and counterfactual.
|
|
52
62
|
- **CLEANUP:** establish an observable behavior baseline, isolate pure refactors from feature changes, prove no drift.
|
|
63
|
+
- **ATTENTION:** when communicating with human developers, writing pull request bodies, generating standalone artifacts, or compressing inter-agent handoff messages, follow [Cognitive Bandwidth & Attention Governor](skills/cognitive-load-and-attention-governor/SKILL.md) to eliminate cognitive slop.
|
|
53
64
|
- **NOTED_SLOP:** codify newly observed AI slop into a diagnostic catalog pattern, agent directive, and automated diff guard heuristic (see [CONTRIBUTING.md](CONTRIBUTING.md)).
|
|
54
65
|
- **DECIDE:** when premises, direct answers or long-term architecture choices are materially uncertain, follow [Decision Guard](skills/decision-guard/SKILL.md) before BUILD. Return to ordinary modes after a decision; skip the extra protocol for routine repairs.
|
|
55
66
|
- **ROOT-FIX:** when a symptom attracts scattered fixes or ownership is uncertain, follow [Root-Fix Gate](skills/root-fix-gate/SKILL.md) to establish the change boundary, then resume BUILD/FIX with regression tests.
|
|
56
67
|
- **FUTURE-SCALE:** when an architecture commitment would be expensive to reverse as the product evolves, follow [Future-Scale Gate](skills/future-scale-gate/SKILL.md). Skip routine reversible edits and avoid capacity theater.
|
|
57
68
|
- **PARANOID-ARCHITECT:** when building or reviewing systems against 10M concurrent user load, adversarial traffic, race conditions, hot-key contention, or zero-trust boundaries, follow [Paranoid Principal Architect](skills/paranoid-principal-architect/SKILL.md).
|
|
69
|
+
- **OBSERVABILITY-ARCHITECT:** when designing telemetry, instrumenting OpenTelemetry spans, emitting RED/USE metrics, or configuring Multi-Window Multi-Burn-Rate SLO alerting, follow [Observability & SLO Architect](skills/observability-and-slo-architect/SKILL.md).
|
|
70
|
+
- **INVARIANT-STEWARD:** when syncing architectural decisions into the living Invariant Ledger, ingesting constraints at Gate 0, checking PRs for architectural drift, or validating Reassessment Triggers, follow [Repo Memory & Invariant Steward](skills/repo-memory-and-invariant-steward/SKILL.md).
|
|
71
|
+
- **APPLE-CRAFT:** when designing or auditing client interfaces for 120Hz ProMotion interaction physics, CLS=0.000, exhaustive state matrices, interruptible spring transitions, and keyboard/screen reader accessibility, follow [Apple Craft & Interaction Physics](skills/apple-craft-and-interaction-physics/SKILL.md).
|
|
72
|
+
- **DETERMINISTIC-SIMULATION:** when verifying distributed protocols, concurrent actors, complex state machines, or parsers, follow [Deterministic Simulation & Property Testing](skills/deterministic-simulation-and-property-testing/SKILL.md).
|
|
73
|
+
- **PRIVACY-GATE:** when designing user data pipelines, processing personal identifiers, enforcing cryptographic erasure, or instrumenting telemetry egress, follow [Privacy & Data Lineage Gate](skills/privacy-and-data-lineage-gate/SKILL.md).
|
|
74
|
+
- **AST-SLOP:** when auditing type safety, eliminating type assertions, optimizing reducer complexity, or configuring Oxlint rules, follow [Type-Level & AST Slop Gate](skills/type-level-and-ast-slop-gate/SKILL.md).
|
|
75
|
+
- **API-GOVERNOR:** when designing public SDKs, library interfaces, CLI commands, or internal boundaries, follow [API Ergonomics & Contract Governor](skills/api-ergonomics-and-contract-governor/SKILL.md).
|
|
76
|
+
- **SYSTEM-DRIFT:** when auditing multi-surface applications for cross-route design system drift, component variant budgets, and keyboard focus ring suppression, follow [Design System Drift Guard](skills/design-system-drift-guard/SKILL.md).
|
|
77
|
+
- **CHROMA-DRIFT:** when auditing colors, themes, or gradients for cheerful saturation drift, OKLCH adherence, and category reflex band clichés, follow [Chromatic Drift Guard](skills/chromatic-drift-guard/SKILL.md).
|
|
78
|
+
- **HOUSE-TELL:** before writing code for any landing or UI surface, enforce the Gate 0 Pre-Commit Contract and contractually break at least two habits of the agent itself via [House-Tell Guard](skills/house-tell-guard/SKILL.md).
|
|
79
|
+
- **MOTION-RUNTIME:** when profiling or verifying animations, scroll flights, or canvas state machines under DPR 2 retina conditions and 4x CPU throttle, follow [Motion Runtime Guard](skills/motion-runtime-guard/SKILL.md).
|
|
80
|
+
- **ASSET-PROVENANCE:** when sourcing or embedding media, models, audio, or fonts, maintain cryptographic SHA-256 and open-license ledger tracking via [Asset Provenance Guard](skills/asset-provenance-guard/SKILL.md).
|
|
81
|
+
- **TAGORE:** when drafting, editing, or reviewing engineering prose, PR descriptions, commit messages, ADRs, state notes, or agent reasoning traces, eliminate the 29 cataloged tells, enforce mechanics (>=35/50) and substance (>=21/30) floors, and calibrate to repository ground truth via [Tagore Engineering Discourse Guard](skills/tagore-guard/SKILL.md).
|
|
82
|
+
- **AUDIT:** orchestrate all guards (Diff, SRE, AST Slop, Contrast, Privacy, Contract) into a structured, numbered markdown report `anti-slop/audit-NNN.md` via `bunx anti-slop-engineering audit`. Configure modes (`during`, `after`, `ask`) via `bunx anti-slop-engineering mode [during|after|ask]`.
|
|
83
|
+
- **INSTALL-AGENTS:** install and configure anti-slop skills across 14 AI coding agents via `bunx anti-slop-engineering install`. Upgrade in one shot via `bunx anti-slop-engineering update`.
|
|
58
84
|
|
|
59
85
|
For extensive audits, load [anti-pattern catalog](references/anti-pattern-catalog.md). For Google SRE discipline and distributed resilience patterns, load [google-sre-discipline](references/google-sre-discipline.md). For any test changes, load [test integrity policy](references/test-integrity.md). For a PR or merge request, load [PR review protocol](references/pr-review.md). For elevated permissions, sensitive code, network access, or deployment, load [security and execution boundaries](references/security-and-operations.md). For project-specific exceptions, load [judgment and exceptions](references/engineering-judgment.md). For community contributions, follow [contributor guidelines](CONTRIBUTING.md).
|
|
60
86
|
|
package/action.yml
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
name: "Anti-Slop Engineering Guard"
|
|
2
|
+
description: "Clean-room AI coding guard, PR boundary triage, AST slop detector, honeypot sensor, and Google SRE discipline for GitHub Pull Requests."
|
|
3
|
+
author: "Mamdouh Aboammar <mamdouhfces1997@gmail.com>"
|
|
4
|
+
|
|
5
|
+
inputs:
|
|
6
|
+
base:
|
|
7
|
+
description: "Base commit or branch to compare against (default: HEAD~1 or origin/main)"
|
|
8
|
+
required: false
|
|
9
|
+
default: "HEAD~1"
|
|
10
|
+
pr-title:
|
|
11
|
+
description: "PR title string to evaluate against conventional commits and length bounds"
|
|
12
|
+
required: false
|
|
13
|
+
default: ""
|
|
14
|
+
pr-body-file:
|
|
15
|
+
description: "Path to file containing PR description markdown"
|
|
16
|
+
required: false
|
|
17
|
+
default: ""
|
|
18
|
+
template-file:
|
|
19
|
+
description: "Path to repository PR template markdown"
|
|
20
|
+
required: false
|
|
21
|
+
default: ".github/pull_request_template.md"
|
|
22
|
+
fail-on-blocker:
|
|
23
|
+
description: "Whether to fail the action if blocker-severity findings are detected"
|
|
24
|
+
required: false
|
|
25
|
+
default: "true"
|
|
26
|
+
canary-token:
|
|
27
|
+
description: "Active HMAC canary token to verify against hallucinated bot echoes"
|
|
28
|
+
required: false
|
|
29
|
+
default: ""
|
|
30
|
+
|
|
31
|
+
outputs:
|
|
32
|
+
status:
|
|
33
|
+
description: "Overall audit status (PASSED or BLOCKED)"
|
|
34
|
+
value: ${{ steps.anti-slop-audit.outputs.status }}
|
|
35
|
+
findings-count:
|
|
36
|
+
description: "Total number of findings identified"
|
|
37
|
+
value: ${{ steps.anti-slop-audit.outputs.findings-count }}
|
|
38
|
+
blockers-count:
|
|
39
|
+
description: "Number of blocker-severity findings identified"
|
|
40
|
+
value: ${{ steps.anti-slop-audit.outputs.blockers-count }}
|
|
41
|
+
|
|
42
|
+
runs:
|
|
43
|
+
using: "composite"
|
|
44
|
+
steps:
|
|
45
|
+
- name: Run Anti-Slop Multi-Guard Audit
|
|
46
|
+
id: anti-slop-audit
|
|
47
|
+
shell: bash
|
|
48
|
+
run: |
|
|
49
|
+
python3 -u "${{ github.action_path }}/scripts/audit_runner.py" audit --base "${{ inputs.base }}" --json > audit_result.json || true
|
|
50
|
+
cat audit_result.json
|
|
51
|
+
|
|
52
|
+
# Check PR boundary if title or body provided
|
|
53
|
+
if [ -n "${{ inputs.pr-title }}" ] || [ -f "${{ inputs.pr-body-file }}" ]; then
|
|
54
|
+
python3 -u "${{ github.action_path }}/scripts/pr_boundary_guard.py" \
|
|
55
|
+
--base "${{ inputs.base }}" \
|
|
56
|
+
--pr-title "${{ inputs.pr-title }}" \
|
|
57
|
+
--pr-body-file "${{ inputs.pr-body-file }}" \
|
|
58
|
+
--template-file "${{ inputs.template-file }}" \
|
|
59
|
+
--json > pr_boundary_result.json || true
|
|
60
|
+
cat pr_boundary_result.json
|
|
61
|
+
fi
|
|
62
|
+
|
|
63
|
+
# Check Honeypots if canary provided
|
|
64
|
+
if [ -n "${{ inputs.canary-token }}" ]; then
|
|
65
|
+
python3 -u "${{ github.action_path }}/scripts/honeypot_trap_guard.py" \
|
|
66
|
+
--pr-title "${{ inputs.pr-title }}" \
|
|
67
|
+
--pr-body-file "${{ inputs.pr-body-file }}" \
|
|
68
|
+
--canary-token "${{ inputs.canary-token }}" \
|
|
69
|
+
--json > honeypot_result.json || true
|
|
70
|
+
cat honeypot_result.json
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
# Check comment budget
|
|
74
|
+
python3 -u "${{ github.action_path }}/scripts/comment_budget_guard.py" \
|
|
75
|
+
--base "${{ inputs.base }}" \
|
|
76
|
+
--json > comment_budget_result.json || true
|
|
77
|
+
cat comment_budget_result.json
|
|
78
|
+
|
|
79
|
+
BLOCKERS=$(grep -c '"severity": "blocker"' pr_boundary_result.json honeypot_result.json comment_budget_result.json 2>/dev/null || echo 0)
|
|
80
|
+
echo "blockers-count=$BLOCKERS" >> $GITHUB_OUTPUT
|
|
81
|
+
if [ "$BLOCKERS" -gt 0 ]; then
|
|
82
|
+
echo "status=BLOCKED" >> $GITHUB_OUTPUT
|
|
83
|
+
if [ "${{ inputs.fail-on-blocker }}" = "true" ]; then
|
|
84
|
+
echo "❌ Anti-Slop Guard detected $BLOCKERS blocker finding(s)."
|
|
85
|
+
exit 2
|
|
86
|
+
fi
|
|
87
|
+
else
|
|
88
|
+
echo "status=PASSED" >> $GITHUB_OUTPUT
|
|
89
|
+
echo "✅ All Anti-Slop checks passed cleanly."
|
|
90
|
+
fi
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="Anti-Slop Engineering logo for dark surfaces">
|
|
2
|
+
<rect width="512" height="512" rx="112" fill="#0F172A"/>
|
|
3
|
+
<path d="M256 96 L384 152 V264 C384 340 328 400 256 424 C184 400 128 340 128 264 V152 Z" fill="#1E293B" stroke="#38BDF8" stroke-width="20" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M192 256 L236 300 L324 212" fill="none" stroke="#F8FAFC" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
<circle cx="256" cy="180" r="16" fill="#38BDF8"/>
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="Anti-Slop Engineering logo for light surfaces">
|
|
2
|
+
<rect width="512" height="512" rx="112" fill="#F8FAFC"/>
|
|
3
|
+
<path d="M256 96 L384 152 V264 C384 340 328 400 256 424 C184 400 128 340 128 264 V152 Z" fill="#0F172A" stroke="#0284C7" stroke-width="20" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M192 256 L236 300 L324 212" fill="none" stroke="#F8FAFC" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
<circle cx="256" cy="180" r="16" fill="#38BDF8"/>
|
|
6
|
+
</svg>
|
package/assets/mark.svg
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="Anti-Slop Engineering mark">
|
|
2
|
+
<rect width="512" height="512" rx="112" fill="#0F172A"/>
|
|
3
|
+
<path d="M256 96 L384 152 V264 C384 340 328 400 256 424 C184 400 128 340 128 264 V152 Z" fill="none" stroke="#38BDF8" stroke-width="24" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M192 256 L236 300 L324 212" fill="none" stroke="#F8FAFC" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
</svg>
|