skills/bdi-models-and-systems-reducing-the-gap/SKILL.md
Implement executable BDI reasoning with explicit negation, paraconsistent revision, trigger-based commitment updates, and abduction. Use for runtime agent semantics and conflicting desires. NOT for purely axiomatic modal logic, black-box planners, or classical logic without operational semantics.
npx skillsauth add curiositech/windags-skills bdi-models-and-systems-reducing-the-gapInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when the main problem is closing the gap between a pretty BDI theory and a reasoning engine that can actually run, revise commitments, and survive contradiction.
The problem is not that BDI theory is too abstract. The problem is selecting specification formalisms with no proof procedure or operational semantics. Choose a computational formalism from the start if you want executable agents.
Agents need to represent "I believe not-P" and "I intend not-P" as positive negative information. That is different from merely lacking evidence for P.
Conflicting desires are normal. Paraconsistent semantics treat contradiction as a signal to revise beliefs or intentions, not as a fatal error.
Intentions persist because the revision procedure constrains what new intentions can be adopted and when reconsideration is triggered.
Priority ordering, maximal satisfaction, and minimal change are not after-the-fact cleanups. They are the operational content of deliberation.
flowchart TD
A[Need runnable BDI reasoning] --> B{Must the logic execute at runtime?}
B -->|No| C[Pure axiomatic logic may suffice]
B -->|Yes| D[Choose operational formalism]
D --> E{Need explicit negative mental states?}
E -->|Yes| F[Use explicit negation]
E -->|No| G[Expect weak conflict handling]
F --> H{Conflicts or contradictions appear?}
H -->|Yes| I[Use paraconsistent revision]
H -->|No| J[Proceed with current commitments]
I --> K{Trigger for reconsideration fired?}
K -->|Yes| L[Revise beliefs and intentions by preference]
K -->|No| M[Keep commitments stable]
Cue: the formal model is beautiful, but implementation requires inventing a separate reasoning engine from scratch.
Fix: move to or layer in an operational formalism with executable semantics.
Cue: the system cannot distinguish active aversion from mere absence of evidence.
Fix: represent explicit negation separately from closed-world absence.
Cue: the agent keeps recomputing intentions even when nothing important changed.
Fix: define explicit reconsideration triggers and preserve commitments between them.
Cue: inconsistent desires crash the system or are forbidden before deliberation starts.
Fix: use paraconsistent semantics and revision to turn contradiction into useful signal.
Cue: the system enumerates all consistent subsets first and only then applies priorities.
Fix: encode preference into the revision procedure so it guides the search directly.
A healthcare triage agent must avoid interrupting one patient while escalating another urgent case. Represent the negative intention explicitly, allow contradictory candidate desires, and let priority-guided revision choose which intention set survives after new evidence arrives.
A robot intends to inspect a site before battery reserve drops below a threshold. New terrain beliefs make the route infeasible. The right move is not endless replanning, but trigger-based reconsideration with abductive reasoning about missing preconditions and alternative routes.
references/revision-mechanisms-as-non-monotonic-deliberation.md: load when contradiction handling and revision are the main issue.references/computational-commitment-through-revision-constraints.md: load when operational commitment and reconsideration rules are central.references/desires-as-search-space-not-commands.md: load when the desire/intention distinction is collapsing.references/abduction-as-intention-feasibility-check.md: load when the main issue is whether current intentions are still achievable.references/preference-over-consistency-restoring-revisions.md: load when you need concrete preference structure for deliberation.data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.