allen-cacm1983
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.zipInstalls 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 representationKey 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
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 Situation | Why 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-Pattern | Symptom | Diagnosis | Fix |
|---|---|---|---|
| Point-ification | Reducing events to timestamps, losing overlap/containment info | Using time=14:30 instead of [14:30, 14:45] intervals | Model every event as interval with start/end, even if duration unknown |
| Premature Commitment | Picking single relation when evidence supports multiple | Asserting "before" when you only know "not during" | Maintain full disjunctive label until evidence forces narrowing |
| Global Propagation Bomb | O(N²) cost per update, performance degrades with KB size | Running constraint propagation across entire graph for local query | Use reference interval hierarchy to limit propagation scope |
| Empty Label Denial | Continuing reasoning after inconsistency detected | Getting nonsense results because conflicting constraints ignored | Treat empty arc label as SUCCESS (inconsistency caught early), halt immediately |
| Persistence Rigidity | Cannot override "continues until changed" assumptions | New temporal bounds rejected because they conflict with persistence | Tag 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:
-
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}
-
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}
-
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:
- Update affects scope: Test extension pushes T endpoint later
- Propagation: If T {finishes} B originally, now T {overlaps} B (extends past Build end)
- Check consistency: T {overlaps} B still allows B {before, meets} D and T {before, meets} D
- 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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| allen-cacm1983 (this skill) | 0 | 4mo | No flags | Advanced |
| startup-analyst | 8 | 4mo | No flags | Advanced |
| stress-test | 2 | 2mo | No flags | Intermediate |
| executive-mentor | 3 | 2mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by curiositech
View all by curiositech →You might also like
startup-analyst
sickn33
Expert startup business analyst specializing in market sizing, financial modeling, competitive analysis, and strategic planning for early-stage companies. Use PROACTIVELY when the user asks about market opportunity, TAM/SAM/SOM, financial projections, unit economics, competitive landscape, team planning, startup metrics, or business strategy for pre-seed through Series A startups.
stress-test
alirezarezvani
/em -stress-test — Business Assumption Stress Testing
executive-mentor
alirezarezvani
Adversarial thinking partner for founders and executives. Stress-tests plans, prepares for brutal board meetings, dissects decisions with no good options, and forces honest post-mortems. Use when you need someone to find the holes before the board does, make a decision you've been avoiding, or understand what actually went wrong.
scenario-war-room
alirezarezvani
Cross-functional what-if modeling for cascading multi-variable scenarios. Unlike single-assumption stress testing, this models compound adversity across all business functions simultaneously. Use when facing complex risk scenarios, strategic decisions with major downside, or when the user asks 'what if X AND Y both happen?'
axiom
Anhvu1107
ALWAYS use this when the request matches Axiom: First-principles assumption auditor.
evaluation-filtering
yogsoth-ai
Multi-dimensional evaluation and tiered filtering of generated ideas.