AL

Tools for logical reasoning about time intervals and constraints.

Install

mkdir -p .claude/skills/allen-cacm1983 && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11514" && unzip -o skill.zip -d .claude/skills/allen-cacm1983 && rm skill.zip

Installs to .claude/skills/allen-cacm1983

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Temporal interval algebra for reasoning about time relationships in planning and knowledge representation
105 charsno explicit “when” trigger
Advanced

Key capabilities

  • Classify temporal relationships between events (before, meets, overlaps).
  • Handle disjunctive uncertainty over the 13 Allen relations.
  • Detect inconsistencies in schedules through constraint propagation.
  • Manage events at different timescales using a reference interval hierarchy.
  • Apply persistence defaults for states without explicit end bounds.

How it works

The skill uses Allen's temporal interval algebra to classify relationships between events, propagate constraints, and detect inconsistencies in temporal assertions.

Inputs & outputs

You give it
Temporal assertions about events (e.g., 'Task A finishes before Task B starts')
You get back
Classification of temporal relationships, consistency checks, and propagated constraints

When to use allen-cacm1983

  • Validate schedule consistency
  • Reason about time relationships
  • Analyze overlapping task intervals

About this skill

SKILL.md: Temporal Interval Reasoning (Allen 1983)

When to Use This Skill

Load this skill when you encounter:

Trigger SituationWhy Allen Applies
"Does task A finish before task B starts?"Requires interval relation classification (before, meets, overlaps…)
"I don't know exactly when X happened, only that it was during Y"Disjunctive uncertainty over the 13 relations
"If we add this constraint, does the schedule still work?"Constraint propagation + inconsistency detection
"Event A happens daily; event B happens yearly — how do they interact?"Reference interval hierarchy for scope management

Do not use if you only need to compare two absolute timestamps with no uncertainty — plain arithmetic suffices.


Decision Points

New Temporal Assertion Added

IF assertion conflicts with existing constraints:
    → Detect empty arc label during propagation
    → HALT immediately, report inconsistent interval pair
    → Do NOT continue with inconsistent state

IF assertion is consistent:
    → Run constraint propagation from affected arcs
    → Update labels by intersecting transitivity consequences
    → Continue until no more refinements possible

Handling Temporal Uncertainty

IF evidence only supports multiple relations:
    → Maintain full disjunctive label {before, meets, overlaps}
    → Never collapse to single relation without evidence
    → Log when/why constraint set narrows

IF forced to act under uncertainty:
    → Use disjunctive label as-is for planning
    → Tag any assumptions as defeasible
    → Avoid premature commitment

Scoping Temporal Reasoning

IF dealing with events at vastly different timescales:
    → Identify reference interval hierarchy (year→month→day)
    → Reason within each cluster separately
    → Create explicit bridge constraints at boundaries
    → Avoid flattening everything into one global graph

IF local reasoning feels sufficient:
    → Verify query scope matches reference interval level
    → Propagate only within relevant cluster
    → Escalate cross-cluster only when dependency detected

State Persistence

IF state continues with no explicit end bound:
    → Apply persistence default AND mark as defeasible
    → Any future end-bound assertion overrides default
    → Never treat persistence assumption as hard constraint

IF explicit temporal bound provided:
    → Override any existing persistence defaults
    → Propagate new constraint normally

Failure Modes

Anti-PatternSymptomDiagnosisFix
Point-ificationReducing events to timestamps, losing overlap/containment infoUsing time=14:30 instead of [14:30, 14:45] intervalsModel every event as interval with start/end, even if duration unknown
Premature CommitmentPicking single relation when evidence supports multipleAsserting "before" when you only know "not during"Maintain full disjunctive label until evidence forces narrowing
Global Propagation BombO(N²) cost per update, performance degrades with KB sizeRunning constraint propagation across entire graph for local queryUse reference interval hierarchy to limit propagation scope
Empty Label DenialContinuing reasoning after inconsistency detectedGetting nonsense results because conflicting constraints ignoredTreat empty arc label as SUCCESS (inconsistency caught early), halt immediately
Persistence RigidityCannot override "continues until changed" assumptionsNew temporal bounds rejected because they conflict with persistenceTag all persistence defaults as defeasible, allow override by explicit assertions

Detection Rules:

  • If you see timestamps without duration → Point-ification
  • If you see single relation chosen arbitrarily → Premature Commitment
  • If propagation cost grows with total KB size → Global Propagation Bomb
  • If reasoning continues after empty label → Empty Label Denial
  • If new temporal facts get rejected → Persistence Rigidity

Worked Examples

Example 1: Meeting Schedule Conflict Detection

Scenario: Adding "Team Review" to calendar that already has "Client Call" and "Engineering Standup"

Initial State:

Client Call (I₁): [10:00, 11:00]
Engineering Standup (I₂): [11:30, 12:00]
Known: I₁ {before} I₂

New Assertion: Team Review (I₃): [10:45, 11:15]

Expert Reasoning Trace:

  1. Classify new relations:

    • I₃ vs I₁: starts at 10:45, I₁ ends at 11:00 → {overlaps}
    • I₃ vs I₂: ends at 11:15, I₂ starts at 11:30 → {before}
  2. Constraint propagation:

    • From I₁ {before} I₂ and I₃ {overlaps} I₁
    • Transitivity: overlaps ∘ before = {before, overlaps, meets, starts, during}
    • New constraint: I₃ {before, overlaps, meets, starts, during} I₂
    • Intersect with I₃ {before} I₂: label becomes {before}
  3. Consistency check: All labels non-empty → Schedule is feasible but has overlap

Novice Would Miss:

  • Might not check I₃ overlap with I₁ creates resource conflict
  • Might not verify transitivity maintains consistency
  • Might not distinguish "feasible ordering" from "no resource conflicts"

Expert Catches:

  • Overlap detection flagged immediately via relation classification
  • Propagation verifies global consistency maintained
  • Clear distinction between temporal feasibility and resource availability

Example 2: Process Phase Dependencies

Scenario: Deployment pipeline with uncertain task completion times

Initial State:

Build Phase (B): duration unknown, must finish before Deploy
Test Phase (T): overlaps with end of Build, duration uncertain  
Deploy Phase (D): starts after both B and T complete

Constraint Network:

T {overlaps, finishes} B  (Test can finish with or before Build)
B {before, meets} D       (Build must complete before Deploy)
T {before, meets} D       (Test must complete before Deploy)

New Information: "Test found critical bug, extending by 2 hours"

Expert Reasoning:

  1. Update affects scope: Test extension pushes T endpoint later
  2. Propagation: If T {finishes} B originally, now T {overlaps} B (extends past Build end)
  3. Check consistency: T {overlaps} B still allows B {before, meets} D and T {before, meets} D
  4. Result: Deployment delayed but pipeline logic intact

Novice Would Miss:

  • Might assume Test completion doesn't affect Build-Deploy dependency
  • Might not propagate Test extension through to Deploy timing
  • Might treat "Test extends" as isolated fact rather than constraint network update

Expert Catches:

  • Recognizes Test-Build relation must be re-evaluated
  • Propagates timing implications through full constraint network
  • Maintains uncertainty appropriately (Deploy could start immediately after Build OR after extended Test)

Quality Gates

Temporal reasoning task is complete when:

  • All intervals represented with explicit start/end bounds (no point events)
  • Every interval pair has non-empty arc label from the 13-relation vocabulary
  • Constraint propagation run to completion (no pending transitivity updates)
  • All disjunctive labels honestly reflect current evidence (no arbitrary commitments)
  • Reference interval hierarchy established for multi-scale reasoning
  • Persistence defaults tagged as defeasible where applicable
  • Inconsistency detection verified (empty labels caught and reported)
  • Cross-reference scope bridges explicitly defined
  • All temporal assertions traced to evidence source
  • Query scope matches reasoning granularity level

NOT-FOR Boundaries

Do NOT use Allen's interval algebra for:

  • Simple timestamp comparison → Use arithmetic: if (t1 < t2)
  • Metric duration calculation → Use calendar arithmetic: end_date - start_date
  • Real-time scheduling optimization → Use constraint satisfaction with numeric domains
  • Probabilistic temporal inference → Use temporal probabilistic networks
  • Continuous time dynamics → Use differential equations
  • High-frequency event streams → Use stream processing frameworks

Delegate instead:

  • For metric constraints: Use constraint-satisfaction-with-numeric-domains
  • For probabilistic temporal reasoning: Use bayesian-temporal-networks
  • For real-time systems: Use rate-monotonic-scheduling
  • For continuous dynamics: Use temporal-logic-model-checking
  • For event stream processing: Use complex-event-processing

Allen excels at: Qualitative temporal reasoning under uncertainty with incremental knowledge updates and hierarchical scope management.

When not to use it

  • When only comparing two absolute timestamps.
  • When performing metric duration calculations.
  • When optimizing real-time scheduling with numeric domains.

Limitations

  • Not for simple timestamp comparison.
  • Not for metric duration calculation.
  • Not for real-time scheduling optimization.

How it compares

This skill provides qualitative temporal reasoning under uncertainty with incremental knowledge updates, unlike simple arithmetic comparisons of timestamps.

Compared to similar skills

allen-cacm1983 side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
allen-cacm1983 (this skill)04moNo flagsAdvanced
startup-analyst84moNo flagsAdvanced
stress-test22moNo flagsIntermediate
executive-mentor32moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry